@vexcms/core 0.0.20 → 0.1.0-alpha.3
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/LICENSE +202 -0
- package/dist/.build +1 -0
- package/dist/access/buildChecks.d.ts +58 -0
- package/dist/access/buildChecks.d.ts.map +1 -0
- package/dist/access/canAccessAdminPanel.d.ts +53 -0
- package/dist/access/canAccessAdminPanel.d.ts.map +1 -0
- package/dist/access/compileConstraints.d.ts +155 -0
- package/dist/access/compileConstraints.d.ts.map +1 -0
- package/dist/access/config.d.ts +62 -0
- package/dist/access/config.d.ts.map +1 -0
- package/dist/access/constants.d.ts +95 -0
- package/dist/access/constants.d.ts.map +1 -0
- package/dist/access/constraintTypes.d.ts +337 -0
- package/dist/access/constraintTypes.d.ts.map +1 -0
- package/dist/access/createAccessQueryBuilder.d.ts +59 -0
- package/dist/access/createAccessQueryBuilder.d.ts.map +1 -0
- package/dist/access/createFilterConstraintBuilder.d.ts +26 -0
- package/dist/access/createFilterConstraintBuilder.d.ts.map +1 -0
- package/dist/access/createIndexConstraintBuilder.d.ts +40 -0
- package/dist/access/createIndexConstraintBuilder.d.ts.map +1 -0
- package/dist/access/hasPermission.d.ts +85 -0
- package/dist/access/hasPermission.d.ts.map +1 -0
- package/dist/access/index.d.ts +13 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/pickQueryIndex.d.ts +42 -0
- package/dist/access/pickQueryIndex.d.ts.map +1 -0
- package/dist/access/resolveAccessRule.d.ts +85 -0
- package/dist/access/resolveAccessRule.d.ts.map +1 -0
- package/dist/access/types.d.ts +738 -0
- package/dist/access/types.d.ts.map +1 -0
- package/dist/access/validateAccessConstraints.d.ts +57 -0
- package/dist/access/validateAccessConstraints.d.ts.map +1 -0
- package/dist/api/client.d.ts +20 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +117 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/convex.d.ts +296 -0
- package/dist/api/convex.d.ts.map +1 -0
- package/dist/api/create/client.d.ts +50 -0
- package/dist/api/create/client.d.ts.map +1 -0
- package/dist/api/create/server.d.ts +43 -0
- package/dist/api/create/server.d.ts.map +1 -0
- package/dist/api/depth.d.ts +39 -0
- package/dist/api/depth.d.ts.map +1 -0
- package/dist/api/find/client.d.ts +90 -0
- package/dist/api/find/client.d.ts.map +1 -0
- package/dist/api/find/server.d.ts +73 -0
- package/dist/api/find/server.d.ts.map +1 -0
- package/dist/api/get/client.d.ts +56 -0
- package/dist/api/get/client.d.ts.map +1 -0
- package/dist/api/get/server.d.ts +49 -0
- package/dist/api/get/server.d.ts.map +1 -0
- package/dist/api/globals/find.client.d.ts +20 -0
- package/dist/api/globals/find.client.d.ts.map +1 -0
- package/dist/api/globals/find.server.d.ts +29 -0
- package/dist/api/globals/find.server.d.ts.map +1 -0
- package/dist/api/globals/get.client.d.ts +46 -0
- package/dist/api/globals/get.client.d.ts.map +1 -0
- package/dist/api/globals/get.server.d.ts +55 -0
- package/dist/api/globals/get.server.d.ts.map +1 -0
- package/dist/api/globals/types.d.ts +65 -0
- package/dist/api/globals/types.d.ts.map +1 -0
- package/dist/api/globals/upsert.client.d.ts +24 -0
- package/dist/api/globals/upsert.client.d.ts.map +1 -0
- package/dist/api/globals/upsert.server.d.ts +47 -0
- package/dist/api/globals/upsert.server.d.ts.map +1 -0
- package/dist/api/populate.d.ts +23 -0
- package/dist/api/populate.d.ts.map +1 -0
- package/dist/api/remove/client.d.ts +58 -0
- package/dist/api/remove/client.d.ts.map +1 -0
- package/dist/api/remove/server.d.ts +65 -0
- package/dist/api/remove/server.d.ts.map +1 -0
- package/dist/api/search/client.d.ts +58 -0
- package/dist/api/search/client.d.ts.map +1 -0
- package/dist/api/search/server.d.ts +54 -0
- package/dist/api/search/server.d.ts.map +1 -0
- package/dist/api/server.d.ts +370 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +33 -0
- package/dist/api/server.js.map +1 -0
- package/dist/api/types.d.ts +525 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/update/client.d.ts +53 -0
- package/dist/api/update/client.d.ts.map +1 -0
- package/dist/api/update/server.d.ts +47 -0
- package/dist/api/update/server.d.ts.map +1 -0
- package/dist/api/utils.d.ts +57 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/auth/mergeCollections.d.ts +28 -0
- package/dist/auth/mergeCollections.d.ts.map +1 -0
- package/dist/auth/types.d.ts +84 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-2DU7JDEX.js +1877 -0
- package/dist/chunk-2DU7JDEX.js.map +1 -0
- package/dist/chunk-2IB2DCN7.js +75 -0
- package/dist/chunk-2IB2DCN7.js.map +1 -0
- package/dist/collections/config.d.ts +28 -0
- package/dist/collections/config.d.ts.map +1 -0
- package/dist/collections/constants.d.ts +27 -0
- package/dist/collections/constants.d.ts.map +1 -0
- package/dist/collections/index.d.ts +7 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/indexFields.d.ts +20 -0
- package/dist/collections/indexFields.d.ts.map +1 -0
- package/dist/collections/interfaceGen.d.ts +59 -0
- package/dist/collections/interfaceGen.d.ts.map +1 -0
- package/dist/collections/internal/index.d.ts +2 -0
- package/dist/collections/internal/index.d.ts.map +1 -0
- package/dist/collections/types.d.ts +282 -0
- package/dist/collections/types.d.ts.map +1 -0
- package/dist/collections/utils.d.ts +71 -0
- package/dist/collections/utils.d.ts.map +1 -0
- package/dist/collections/validator.d.ts +73 -0
- package/dist/collections/validator.d.ts.map +1 -0
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/sanitizeConfig.d.ts +82 -0
- package/dist/config/sanitizeConfig.d.ts.map +1 -0
- package/dist/config/types.d.ts +316 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/fields/array/config.d.ts +57 -0
- package/dist/fields/array/config.d.ts.map +1 -0
- package/dist/fields/array/index.d.ts +5 -0
- package/dist/fields/array/index.d.ts.map +1 -0
- package/dist/fields/array/inputSchema.d.ts +32 -0
- package/dist/fields/array/inputSchema.d.ts.map +1 -0
- package/dist/fields/array/types.d.ts +127 -0
- package/dist/fields/array/types.d.ts.map +1 -0
- package/dist/fields/array/validator.d.ts +30 -0
- package/dist/fields/array/validator.d.ts.map +1 -0
- package/dist/fields/baseTypes.d.ts +251 -0
- package/dist/fields/baseTypes.d.ts.map +1 -0
- package/dist/fields/blocks/config.d.ts +63 -0
- package/dist/fields/blocks/config.d.ts.map +1 -0
- package/dist/fields/blocks/index.d.ts +5 -0
- package/dist/fields/blocks/index.d.ts.map +1 -0
- package/dist/fields/blocks/inputSchema.d.ts +22 -0
- package/dist/fields/blocks/inputSchema.d.ts.map +1 -0
- package/dist/fields/blocks/types.d.ts +253 -0
- package/dist/fields/blocks/types.d.ts.map +1 -0
- package/dist/fields/blocks/validator.d.ts +32 -0
- package/dist/fields/blocks/validator.d.ts.map +1 -0
- package/dist/fields/checkbox/config.d.ts +46 -0
- package/dist/fields/checkbox/config.d.ts.map +1 -0
- package/dist/fields/checkbox/index.d.ts +5 -0
- package/dist/fields/checkbox/index.d.ts.map +1 -0
- package/dist/fields/checkbox/inputSchema.d.ts +27 -0
- package/dist/fields/checkbox/inputSchema.d.ts.map +1 -0
- package/dist/fields/checkbox/types.d.ts +67 -0
- package/dist/fields/checkbox/types.d.ts.map +1 -0
- package/dist/fields/checkbox/validator.d.ts +34 -0
- package/dist/fields/checkbox/validator.d.ts.map +1 -0
- package/dist/fields/color/config.d.ts +49 -0
- package/dist/fields/color/config.d.ts.map +1 -0
- package/dist/fields/color/convert.d.ts +72 -0
- package/dist/fields/color/convert.d.ts.map +1 -0
- package/dist/fields/color/formats.d.ts +38 -0
- package/dist/fields/color/formats.d.ts.map +1 -0
- package/dist/fields/color/index.d.ts +8 -0
- package/dist/fields/color/index.d.ts.map +1 -0
- package/dist/fields/color/inputSchema.d.ts +29 -0
- package/dist/fields/color/inputSchema.d.ts.map +1 -0
- package/dist/fields/color/types.d.ts +100 -0
- package/dist/fields/color/types.d.ts.map +1 -0
- package/dist/fields/color/utils.d.ts +100 -0
- package/dist/fields/color/utils.d.ts.map +1 -0
- package/dist/fields/color/validator.d.ts +27 -0
- package/dist/fields/color/validator.d.ts.map +1 -0
- package/dist/fields/constants.d.ts +108 -0
- package/dist/fields/constants.d.ts.map +1 -0
- package/dist/fields/date/config.d.ts +57 -0
- package/dist/fields/date/config.d.ts.map +1 -0
- package/dist/fields/date/index.d.ts +5 -0
- package/dist/fields/date/index.d.ts.map +1 -0
- package/dist/fields/date/inputSchema.d.ts +29 -0
- package/dist/fields/date/inputSchema.d.ts.map +1 -0
- package/dist/fields/date/types.d.ts +147 -0
- package/dist/fields/date/types.d.ts.map +1 -0
- package/dist/fields/date/validator.d.ts +34 -0
- package/dist/fields/date/validator.d.ts.map +1 -0
- package/dist/fields/group/config.d.ts +47 -0
- package/dist/fields/group/config.d.ts.map +1 -0
- package/dist/fields/group/index.d.ts +5 -0
- package/dist/fields/group/index.d.ts.map +1 -0
- package/dist/fields/group/inputSchema.d.ts +27 -0
- package/dist/fields/group/inputSchema.d.ts.map +1 -0
- package/dist/fields/group/types.d.ts +105 -0
- package/dist/fields/group/types.d.ts.map +1 -0
- package/dist/fields/group/validator.d.ts +41 -0
- package/dist/fields/group/validator.d.ts.map +1 -0
- package/dist/fields/index.d.ts +20 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/inputSchemas/index.d.ts +23 -0
- package/dist/fields/inputSchemas/index.d.ts.map +1 -0
- package/dist/fields/inputSchemas/utils.d.ts +25 -0
- package/dist/fields/inputSchemas/utils.d.ts.map +1 -0
- package/dist/fields/interfaceGen.d.ts +15 -0
- package/dist/fields/interfaceGen.d.ts.map +1 -0
- package/dist/fields/number/config.d.ts +48 -0
- package/dist/fields/number/config.d.ts.map +1 -0
- package/dist/fields/number/index.d.ts +5 -0
- package/dist/fields/number/index.d.ts.map +1 -0
- package/dist/fields/number/inputSchema.d.ts +23 -0
- package/dist/fields/number/inputSchema.d.ts.map +1 -0
- package/dist/fields/number/types.d.ts +100 -0
- package/dist/fields/number/types.d.ts.map +1 -0
- package/dist/fields/number/validator.d.ts +39 -0
- package/dist/fields/number/validator.d.ts.map +1 -0
- package/dist/fields/relationship/config.d.ts +45 -0
- package/dist/fields/relationship/config.d.ts.map +1 -0
- package/dist/fields/relationship/index.d.ts +5 -0
- package/dist/fields/relationship/index.d.ts.map +1 -0
- package/dist/fields/relationship/inputSchema.d.ts +31 -0
- package/dist/fields/relationship/inputSchema.d.ts.map +1 -0
- package/dist/fields/relationship/types.d.ts +126 -0
- package/dist/fields/relationship/types.d.ts.map +1 -0
- package/dist/fields/relationship/validator.d.ts +27 -0
- package/dist/fields/relationship/validator.d.ts.map +1 -0
- package/dist/fields/select/config.d.ts +59 -0
- package/dist/fields/select/config.d.ts.map +1 -0
- package/dist/fields/select/index.d.ts +5 -0
- package/dist/fields/select/index.d.ts.map +1 -0
- package/dist/fields/select/inputSchema.d.ts +28 -0
- package/dist/fields/select/inputSchema.d.ts.map +1 -0
- package/dist/fields/select/types.d.ts +89 -0
- package/dist/fields/select/types.d.ts.map +1 -0
- package/dist/fields/select/validator.d.ts +31 -0
- package/dist/fields/select/validator.d.ts.map +1 -0
- package/dist/fields/text/config.d.ts +48 -0
- package/dist/fields/text/config.d.ts.map +1 -0
- package/dist/fields/text/index.d.ts +5 -0
- package/dist/fields/text/index.d.ts.map +1 -0
- package/dist/fields/text/inputSchema.d.ts +24 -0
- package/dist/fields/text/inputSchema.d.ts.map +1 -0
- package/dist/fields/text/types.d.ts +132 -0
- package/dist/fields/text/types.d.ts.map +1 -0
- package/dist/fields/text/validator.d.ts +39 -0
- package/dist/fields/text/validator.d.ts.map +1 -0
- package/dist/fields/types.d.ts +135 -0
- package/dist/fields/types.d.ts.map +1 -0
- package/dist/fields/upload/config.d.ts +24 -0
- package/dist/fields/upload/config.d.ts.map +1 -0
- package/dist/fields/upload/index.d.ts +5 -0
- package/dist/fields/upload/index.d.ts.map +1 -0
- package/dist/fields/upload/inputSchema.d.ts +17 -0
- package/dist/fields/upload/inputSchema.d.ts.map +1 -0
- package/dist/fields/upload/types.d.ts +78 -0
- package/dist/fields/upload/types.d.ts.map +1 -0
- package/dist/fields/upload/validator.d.ts +16 -0
- package/dist/fields/upload/validator.d.ts.map +1 -0
- package/dist/fields/url/config.d.ts +49 -0
- package/dist/fields/url/config.d.ts.map +1 -0
- package/dist/fields/url/index.d.ts +5 -0
- package/dist/fields/url/index.d.ts.map +1 -0
- package/dist/fields/url/inputSchema.d.ts +31 -0
- package/dist/fields/url/inputSchema.d.ts.map +1 -0
- package/dist/fields/url/types.d.ts +70 -0
- package/dist/fields/url/types.d.ts.map +1 -0
- package/dist/fields/url/validator.d.ts +37 -0
- package/dist/fields/url/validator.d.ts.map +1 -0
- package/dist/fields/utils.d.ts +47 -0
- package/dist/fields/utils.d.ts.map +1 -0
- package/dist/fields/validators/index.d.ts +23 -0
- package/dist/fields/validators/index.d.ts.map +1 -0
- package/dist/fields/validators/utils.d.ts +24 -0
- package/dist/fields/validators/utils.d.ts.map +1 -0
- package/dist/framework.d.ts +227 -0
- package/dist/framework.d.ts.map +1 -0
- package/dist/globals/config/config.d.ts +1 -0
- package/dist/globals/config/config.d.ts.map +1 -0
- package/dist/globals/config/types.d.ts +1 -0
- package/dist/globals/config/types.d.ts.map +1 -0
- package/dist/globals/config.d.ts +47 -0
- package/dist/globals/config.d.ts.map +1 -0
- package/dist/globals/index.d.ts +5 -0
- package/dist/globals/index.d.ts.map +1 -0
- package/dist/globals/interfaceGen.d.ts +33 -0
- package/dist/globals/interfaceGen.d.ts.map +1 -0
- package/dist/globals/types.d.ts +175 -0
- package/dist/globals/types.d.ts.map +1 -0
- package/dist/globals/utils.d.ts +37 -0
- package/dist/globals/utils.d.ts.map +1 -0
- package/dist/index.d.ts +15 -3165
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2101 -3475
- package/dist/index.js.map +1 -1
- package/dist/media/api/index.d.ts +5 -0
- package/dist/media/api/index.d.ts.map +1 -0
- package/dist/media/api/mutations.d.ts +76 -0
- package/dist/media/api/mutations.d.ts.map +1 -0
- package/dist/media/api/queries.d.ts +28 -0
- package/dist/media/api/queries.d.ts.map +1 -0
- package/dist/media/api/server.d.ts +68 -0
- package/dist/media/api/server.d.ts.map +1 -0
- package/dist/media/api/types.d.ts +171 -0
- package/dist/media/api/types.d.ts.map +1 -0
- package/dist/media/config.d.ts +25 -0
- package/dist/media/config.d.ts.map +1 -0
- package/dist/media/index.d.ts +6 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/types.d.ts +332 -0
- package/dist/media/types.d.ts.map +1 -0
- package/dist/media/utils.d.ts +35 -0
- package/dist/media/utils.d.ts.map +1 -0
- package/dist/media/validators.d.ts +61 -0
- package/dist/media/validators.d.ts.map +1 -0
- package/dist/schema/generateVexSchema.d.ts +36 -0
- package/dist/schema/generateVexSchema.d.ts.map +1 -0
- package/dist/schema/index.d.ts +3 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/migrate.d.ts +73 -0
- package/dist/schema/migrate.d.ts.map +1 -0
- package/dist/types/generateVexTypes.d.ts +41 -0
- package/dist/types/generateVexTypes.d.ts.map +1 -0
- package/dist/types/generated.d.ts +382 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils.d.ts +57 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +67 -24
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/date/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,WAAW,cAAc,CAC7B,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL;;;;WAIG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B;;;WAGG;QACH,UAAU,CAAC,EAAE;YACX,+CAA+C;YAC/C,IAAI,EAAE,OAAO,CAAC;YACd,iDAAiD;YACjD,MAAM,EAAE,OAAO,CAAC;YAChB,mDAAmD;YACnD,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,SAAS,CAAC,UAAU,CAAC;IAClF,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C,uGAAuG;IACvG,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB,qGAAqG;IACrG,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE;QACJ,yFAAyF;QACzF,MAAM,EAAE,OAAO,CAAC;QAChB,8FAA8F;QAC9F,eAAe,EAAE,OAAO,CAAC;QACzB,8DAA8D;QAC9D,UAAU,EAAE;YACV,0CAA0C;YAC1C,IAAI,EAAE,OAAO,CAAC;YACd,4CAA4C;YAC5C,MAAM,EAAE,OAAO,CAAC;YAChB,6CAA6C;YAC7C,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;KACH,CAAC;CACH"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DateField } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a date field definition to a Convex schema validator.
|
|
4
|
+
*
|
|
5
|
+
* Generates the appropriate `v.number()` or `v.optional(v.number())` code
|
|
6
|
+
* for the Convex schema based on the field's required property.
|
|
7
|
+
* Date values are stored as Unix timestamps in milliseconds.
|
|
8
|
+
*
|
|
9
|
+
* **Important notes:**
|
|
10
|
+
* - The `time` property is a UI concern only — it does NOT affect the schema type
|
|
11
|
+
* - The index property is handled separately by index collection logic
|
|
12
|
+
*
|
|
13
|
+
* This function is used by the CLI during schema generation to build
|
|
14
|
+
* the Convex schema file.
|
|
15
|
+
*
|
|
16
|
+
* @param props - dateFieldToValidator() input props
|
|
17
|
+
* @param props.field - The date field definition
|
|
18
|
+
* @returns Convex value type string: `"v.number()"` or `"v.optional(v.number())"`
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const field1 = date({ required: true })
|
|
23
|
+
* dateFieldToValidator({ field: field1 }) // "v.number()"
|
|
24
|
+
*
|
|
25
|
+
* const field2 = date({ required: false })
|
|
26
|
+
* dateFieldToValidator({ field: field2 }) // "v.optional(v.number())"
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @internal - Used by schema generation, not typically called by users
|
|
30
|
+
*/
|
|
31
|
+
export declare function dateFieldToValidator(props: {
|
|
32
|
+
field: DateField;
|
|
33
|
+
}): string;
|
|
34
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/fields/date/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG,MAAM,CAKxE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BaseFieldMeta } from "../types";
|
|
2
|
+
import type { GroupFieldInput, GroupField } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Creates a group field with all defaults applied.
|
|
5
|
+
*
|
|
6
|
+
* Group fields store a named set of sub-fields as a single nested Convex
|
|
7
|
+
* `v.object({...})`. Each sub-field respects its own `required` setting —
|
|
8
|
+
* required sub-fields emit bare validators (e.g. `v.string()`); optional
|
|
9
|
+
* ones emit `v.optional(v.string())`.
|
|
10
|
+
*
|
|
11
|
+
* **Defaults applied:**
|
|
12
|
+
* - `label` — `""` (inferred from the field key by `defineCollection`)
|
|
13
|
+
* - `required` — `false`
|
|
14
|
+
* - `defaultValue` — `{}`
|
|
15
|
+
* - `admin.hidden` — `false`
|
|
16
|
+
* - `admin.readOnly` — `false`
|
|
17
|
+
* - `admin.position` — `"main"`
|
|
18
|
+
* - `admin.width` — `"full"`
|
|
19
|
+
* - `admin.cellAlignment` — `"left"`
|
|
20
|
+
*
|
|
21
|
+
* @param options - Group field configuration. `fields` is required; all other
|
|
22
|
+
* properties are optional.
|
|
23
|
+
* @returns Resolved group field definition with all defaults applied.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { group, text, url } from "@vexcms/core"
|
|
28
|
+
*
|
|
29
|
+
* posts: defineCollection({
|
|
30
|
+
* fields: {
|
|
31
|
+
* seo: group({
|
|
32
|
+
* label: "SEO",
|
|
33
|
+
* fields: {
|
|
34
|
+
* title: text({ required: true }),
|
|
35
|
+
* description: text(),
|
|
36
|
+
* ogImage: url(),
|
|
37
|
+
* },
|
|
38
|
+
* }),
|
|
39
|
+
* },
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @see {@link GroupFieldInput} for the full input type
|
|
44
|
+
* @see {@link GroupField} for the resolved output type
|
|
45
|
+
*/
|
|
46
|
+
export declare function group<TFieldMeta extends BaseFieldMeta = BaseFieldMeta>(options: GroupFieldInput<TFieldMeta>): GroupField<TFieldMeta>;
|
|
47
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/fields/group/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,KAAK,CAAC,UAAU,SAAS,aAAa,GAAG,aAAa,EACpE,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GACnC,UAAU,CAAC,UAAU,CAAC,CA8BxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/group/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ZodType } from "zod";
|
|
2
|
+
import type { GroupField } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Builds a Zod schema for validating a group field value in the admin form.
|
|
5
|
+
*
|
|
6
|
+
* Constructs a `z.object({...})` where each key maps to the sub-field's own
|
|
7
|
+
* Zod schema via `adminFieldToInputSchema`. Sub-field defaults and optionality
|
|
8
|
+
* are handled recursively. The outer object receives `.optional()` when
|
|
9
|
+
* `field.required` is `false` via `applyBaseInputSchemaMeta`.
|
|
10
|
+
*
|
|
11
|
+
* @param props - Input props.
|
|
12
|
+
* @param props.field - The resolved group field definition.
|
|
13
|
+
* @returns A Zod object schema with a `.default({})` and optionality applied.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const field = group({ fields: { title: text({ required: true }), body: text() } })
|
|
18
|
+
* groupFieldToInputSchema({ field })
|
|
19
|
+
* // → z.object({ title: z.string(), body: z.string().optional() }).optional().default({})
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @internal — Used by admin form schema construction via `adminFieldToInputSchema`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function groupFieldToInputSchema<TFieldMeta extends {} = {}>(props: {
|
|
25
|
+
field: GroupField<TFieldMeta>;
|
|
26
|
+
}): ZodType;
|
|
27
|
+
//# sourceMappingURL=inputSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputSchema.d.ts","sourceRoot":"","sources":["../../../src/fields/group/inputSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAGjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE;IACzE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,OAAO,CAaV"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { ADMIN_FIELDS } from "../constants";
|
|
2
|
+
import { BaseField, BaseFieldInput, FieldAdminConfig } from "../baseTypes";
|
|
3
|
+
import { AdminField } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration input for a `group()` field.
|
|
6
|
+
*
|
|
7
|
+
* Group fields store a named set of sub-fields as a single nested object.
|
|
8
|
+
* All properties except `fields` are optional; unset properties fall back
|
|
9
|
+
* to the defaults applied by `group()`.
|
|
10
|
+
*
|
|
11
|
+
* **Defaults applied by `group()`:**
|
|
12
|
+
* ```ts
|
|
13
|
+
* {
|
|
14
|
+
* type: "group",
|
|
15
|
+
* label: "", // inferred from the field key by defineCollection
|
|
16
|
+
* required: false,
|
|
17
|
+
* defaultOpen: true,
|
|
18
|
+
* defaultValue: {},
|
|
19
|
+
* admin: {
|
|
20
|
+
* hidden: false,
|
|
21
|
+
* readOnly: false,
|
|
22
|
+
* position: "main",
|
|
23
|
+
* width: "full",
|
|
24
|
+
* cellAlignment: "left",
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* seo: group({
|
|
31
|
+
* label: "SEO",
|
|
32
|
+
* fields: {
|
|
33
|
+
* title: text({ required: true }),
|
|
34
|
+
* description: text(),
|
|
35
|
+
* },
|
|
36
|
+
* defaultOpen: false, // accordion starts collapsed
|
|
37
|
+
* })
|
|
38
|
+
*
|
|
39
|
+
* @see {@link GroupField} for the resolved output type
|
|
40
|
+
* @see {@link group} for the config function that produces this type
|
|
41
|
+
*/
|
|
42
|
+
export interface GroupFieldInput<TFieldMeta extends {} = {}> extends BaseFieldInput<TFieldMeta> {
|
|
43
|
+
/**
|
|
44
|
+
* Sub-fields that form the object's shape.
|
|
45
|
+
*
|
|
46
|
+
* Accepts any `AdminField` value, including nested `group()` or `array()`.
|
|
47
|
+
* Each sub-field uses its own `required` setting for both Zod validation
|
|
48
|
+
* and Convex schema generation.
|
|
49
|
+
*/
|
|
50
|
+
fields: Record<string, AdminField>;
|
|
51
|
+
/** Pre-filled value shown when creating a new document. Defaults to `{}`. */
|
|
52
|
+
defaultValue?: Record<string, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the accordion fieldset starts open in the admin form.
|
|
55
|
+
*
|
|
56
|
+
* Defaults to `true`. Set `false` for secondary or rarely-edited groups
|
|
57
|
+
* (e.g. SEO metadata on a page) to reduce visual noise on load.
|
|
58
|
+
*/
|
|
59
|
+
defaultOpen?: boolean;
|
|
60
|
+
interfaceName?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolved configuration for a `group()` field, after all defaults are applied.
|
|
64
|
+
*
|
|
65
|
+
* This is the type field input components and validator functions receive.
|
|
66
|
+
* `interfaceType` is a computed TypeScript object-type string built from the
|
|
67
|
+
* sub-fields (e.g. `"{ title: string; description?: string }"`), used by
|
|
68
|
+
* `generateVexTypes` to emit accurately-typed document interfaces.
|
|
69
|
+
*
|
|
70
|
+
* @see {@link GroupFieldInput} for the user-facing input type
|
|
71
|
+
* @see {@link group} for the config function that produces this type
|
|
72
|
+
*/
|
|
73
|
+
export interface GroupField<TFieldMeta extends {} = {}> extends BaseField<TFieldMeta> {
|
|
74
|
+
readonly type: typeof ADMIN_FIELDS.group.type;
|
|
75
|
+
/** Display label shown in the admin form. Always set — inferred from field key if not provided. */
|
|
76
|
+
label: string;
|
|
77
|
+
/** Whether this field is required in the database schema. */
|
|
78
|
+
required: boolean;
|
|
79
|
+
/** Resolved admin UI configuration with all defaults applied. */
|
|
80
|
+
admin: FieldAdminConfig;
|
|
81
|
+
/**
|
|
82
|
+
* Sub-fields that form the object's shape.
|
|
83
|
+
*
|
|
84
|
+
* Each sub-field retains its own `required`, `label`, and admin settings.
|
|
85
|
+
* Convex and Zod validators are generated per-field respecting those settings.
|
|
86
|
+
*/
|
|
87
|
+
fields: Record<string, AdminField>;
|
|
88
|
+
/**
|
|
89
|
+
* Computed TypeScript object-type string for `generateVexTypes`.
|
|
90
|
+
*
|
|
91
|
+
* Built from sub-fields in `group()` — e.g. `"{ title: string; description?: string }"`.
|
|
92
|
+
* Automatically reflects nested groups or arrays within the sub-fields.
|
|
93
|
+
*/
|
|
94
|
+
interfaceType: string;
|
|
95
|
+
interfaceName?: string;
|
|
96
|
+
/** Pre-filled value shown when creating a new document. */
|
|
97
|
+
defaultValue: Record<string, unknown>;
|
|
98
|
+
/**
|
|
99
|
+
* Whether the accordion fieldset starts open in the admin form.
|
|
100
|
+
*
|
|
101
|
+
* Resolved value after defaults — always `true` unless explicitly set `false`.
|
|
102
|
+
*/
|
|
103
|
+
defaultOpen: boolean;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/group/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,WAAW,eAAe,CAC9B,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClC;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CACzB,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,SAAS,CAAC,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9C,mGAAmG;IACnG,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { GroupField } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a group field definition to a Convex schema validator string.
|
|
4
|
+
*
|
|
5
|
+
* Generates `v.object({ key: validator, ... })` where each sub-field's
|
|
6
|
+
* validator is built by the existing `adminFieldToValidator` dispatch.
|
|
7
|
+
* Sub-fields respect their own `required` setting — required sub-fields
|
|
8
|
+
* emit bare validators; optional ones emit `v.optional(...)`.
|
|
9
|
+
*
|
|
10
|
+
* The outer object is wrapped in `v.optional(...)` when `field.required`
|
|
11
|
+
* is `false`.
|
|
12
|
+
*
|
|
13
|
+
* @param props - Input props.
|
|
14
|
+
* @param props.field - The resolved group field definition.
|
|
15
|
+
* @returns A Convex validator string.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const field = group({
|
|
20
|
+
* fields: { title: text({ required: true }), body: text() },
|
|
21
|
+
* })
|
|
22
|
+
* groupFieldToValidator({ field })
|
|
23
|
+
* // → 'v.optional(v.object({ title: v.string(), body: v.optional(v.string()) }))'
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const field = group({
|
|
29
|
+
* required: true,
|
|
30
|
+
* fields: { score: number({ required: true }) },
|
|
31
|
+
* })
|
|
32
|
+
* groupFieldToValidator({ field })
|
|
33
|
+
* // → 'v.object({ score: v.number() })'
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @internal — Used by CLI schema generation via `adminFieldToValidator`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function groupFieldToValidator<TFieldMeta extends {} = {}>(props: {
|
|
39
|
+
field: GroupField<TFieldMeta>;
|
|
40
|
+
}): string;
|
|
41
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/fields/group/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE;IACvE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;CAC/B,GAAG,MAAM,CAcT"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from "./constants";
|
|
2
|
+
export * from "./baseTypes";
|
|
3
|
+
export * from "./types";
|
|
4
|
+
export * from "./validators";
|
|
5
|
+
export * from "./inputSchemas";
|
|
6
|
+
export * from "./interfaceGen";
|
|
7
|
+
export * from "./utils";
|
|
8
|
+
export * from "./text";
|
|
9
|
+
export * from "./select";
|
|
10
|
+
export * from "./relationship";
|
|
11
|
+
export * from "./number";
|
|
12
|
+
export * from "./checkbox";
|
|
13
|
+
export * from "./date";
|
|
14
|
+
export * from "./url";
|
|
15
|
+
export * from "./color";
|
|
16
|
+
export * from "./array";
|
|
17
|
+
export * from "./group";
|
|
18
|
+
export * from "./blocks";
|
|
19
|
+
export * from "./upload";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AdminField } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Converts any field definition to its form input schema using zod.
|
|
4
|
+
*
|
|
5
|
+
* Dispatches to the field-type-specific input schema function based on `field.type`.
|
|
6
|
+
* Used by the admin panel while form rendering to build the form input for individual fields, collections, blocks, and globals.
|
|
7
|
+
*
|
|
8
|
+
* @param props Input props
|
|
9
|
+
* @param props.field - The resolved field definition to convert
|
|
10
|
+
* @returns A ZodType (e.g. `z.string()`, `z.boolean().optional().default(false)`)
|
|
11
|
+
* @throws An Error if an unrecognized field type is given. Reaching this is a
|
|
12
|
+
* compile error: the default arm binds the exhausted union to `never`, so a new
|
|
13
|
+
* member of `AdminField` fails typecheck here until a case is added
|
|
14
|
+
*
|
|
15
|
+
* @see {@link textFieldToInputSchema} for the text field implementation
|
|
16
|
+
* @see {@link numberFieldToInputSchema} for the number field implementation
|
|
17
|
+
* @see {@link checkboxFieldToInputSchema} for the checkbox field implementation
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare function adminFieldToInputSchema(props: {
|
|
21
|
+
field: AdminField;
|
|
22
|
+
}): import("zod").ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>;
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/inputSchemas/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AActC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,sGAqCnE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ZodType } from "zod";
|
|
2
|
+
import type { AdminField } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Attaches field metadata and wraps in `.optional()` for non-required fields.
|
|
5
|
+
*
|
|
6
|
+
* Used during form schema generation to apply the correct Zod validator based on
|
|
7
|
+
* whether the field is marked as required in its config.
|
|
8
|
+
*
|
|
9
|
+
* @param props - Input props.
|
|
10
|
+
* @param props.field - The resolved field definition, used to check `required` and `defaultValue`
|
|
11
|
+
* @param props.inputSchema - The base Zod schema for the field (e.g. `z.string()`)
|
|
12
|
+
* @returns The schema with `.meta(fieldMeta)` for required fields, or `.meta(fieldMeta).optional()` for non-required fields. No `.default()` is applied — each field's own schema is responsible for baking in a default value.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* applyBaseInputSchemaMeta({ field: textField, inputSchema: z.string() })
|
|
17
|
+
* // required field → z.string().meta({ label, description })
|
|
18
|
+
* // optional field → z.string().meta({ label, description }).optional()
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyBaseInputSchemaMeta(props: {
|
|
22
|
+
field: AdminField;
|
|
23
|
+
inputSchema: ZodType;
|
|
24
|
+
}): ZodType;
|
|
25
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/fields/inputSchemas/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAWV"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CollectionConfig } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Recursively collects `export type` declarations for every group field that
|
|
4
|
+
* carries an `interfaceName`, at any depth in the field tree.
|
|
5
|
+
*
|
|
6
|
+
* Traversal is depth-first so nested named types are always declared before
|
|
7
|
+
* the parent types that reference them. Both direct group sub-fields and
|
|
8
|
+
* group items inside array fields are visited.
|
|
9
|
+
*
|
|
10
|
+
* @param fields - The field map to walk (collection-level or group sub-fields).
|
|
11
|
+
* @returns Ordered list of `export type Name = ...` strings, ready to prepend
|
|
12
|
+
* to the generated interface block.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getFieldInterfaces(fields: CollectionConfig["fields"]): string[];
|
|
15
|
+
//# sourceMappingURL=interfaceGen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaceGen.d.ts","sourceRoot":"","sources":["../../src/fields/interfaceGen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAuC/E"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { NumberFieldInput, NumberField } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a number field with all defaults applied.
|
|
4
|
+
*
|
|
5
|
+
* Number fields store numeric values.
|
|
6
|
+
* Common uses: prices, quantities, ratings, ages, counts.
|
|
7
|
+
*
|
|
8
|
+
* Accepts {@link NumberFieldInput} (all optional) and returns {@link NumberField} with all defaults applied.
|
|
9
|
+
*
|
|
10
|
+
* **Defaults applied:**
|
|
11
|
+
* - `label` — `""` (inferred from the field key by `defineCollection`)
|
|
12
|
+
* - `required` — `false`
|
|
13
|
+
* - `admin.hidden` — `false`
|
|
14
|
+
* - `admin.readOnly` — `false`
|
|
15
|
+
* - `admin.position` — `"main"`
|
|
16
|
+
* - `admin.width` — `"full"`
|
|
17
|
+
* - `admin.cellAlignment` — `"left"`
|
|
18
|
+
*
|
|
19
|
+
* @param options - Number field configuration. All properties are optional.
|
|
20
|
+
* @returns Resolved number field definition with all defaults applied.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { number, defineCollection } from '@vexcms/core'
|
|
25
|
+
*
|
|
26
|
+
* products: defineCollection({
|
|
27
|
+
* fields: {
|
|
28
|
+
* // Minimal — label inferred from key ("Price")
|
|
29
|
+
* price: number(),
|
|
30
|
+
*
|
|
31
|
+
* // Required quantity with a minimum of 1 and a database index
|
|
32
|
+
* quantity: number({ required: true, min: { value: 1 }, index: "by_quantity" }),
|
|
33
|
+
*
|
|
34
|
+
* // Rating capped between 0 and 5
|
|
35
|
+
* rating: number({
|
|
36
|
+
* min: { value: 0, error: "Rating cannot be negative" },
|
|
37
|
+
* max: { value: 5, error: "Rating cannot exceed 5" },
|
|
38
|
+
* admin: { width: "half" },
|
|
39
|
+
* }),
|
|
40
|
+
* }
|
|
41
|
+
* })
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @see {@link NumberFieldInput} for the full input type
|
|
45
|
+
* @see {@link NumberField} for the resolved output type
|
|
46
|
+
*/
|
|
47
|
+
export declare function number<TFieldMeta extends {} = {}>(options?: NumberFieldInput<TFieldMeta>): NumberField<TFieldMeta>;
|
|
48
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/fields/number/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,MAAM,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,EAC/C,OAAO,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,GACrC,WAAW,CAAC,UAAU,CAAC,CAgCzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/number/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ZodType } from "zod";
|
|
2
|
+
import { NumberField } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Builds a Zod schema for validating a number field value in the admin form.
|
|
5
|
+
*
|
|
6
|
+
* Applies `min` and `max` constraints when configured, then wraps in
|
|
7
|
+
* `.optional()` for non-required fields via `applyBaseInputSchemaMeta`.
|
|
8
|
+
*
|
|
9
|
+
* @param props - Input props.
|
|
10
|
+
* @param props.field - The resolved number field definition
|
|
11
|
+
* @returns A Zod number schema with range constraints, a baked-in `.default(field.defaultValue)`, and optionality applied
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const field = number({ required: true, min: { value: 0 }, max: { value: 100 } })
|
|
16
|
+
* numberFieldToInputSchema({ field })
|
|
17
|
+
* // → z.number().min(0).max(100).default(0)
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function numberFieldToInputSchema(props: {
|
|
21
|
+
field: NumberField;
|
|
22
|
+
}): ZodType;
|
|
23
|
+
//# sourceMappingURL=inputSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputSchema.d.ts","sourceRoot":"","sources":["../../../src/fields/number/inputSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,KAAK,EAAE,WAAW,CAAC;CACpB,GAAG,OAAO,CAuCV"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ADMIN_FIELDS } from "../constants";
|
|
2
|
+
import { BaseField, BaseFieldInput, FieldAdminConfig } from "../baseTypes";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration input for a `number()` field.
|
|
5
|
+
*
|
|
6
|
+
* Number fields store numeric values — prices, quantities, ratings, ages, counts, etc.
|
|
7
|
+
* All properties are optional; unset properties fall back to the defaults listed below.
|
|
8
|
+
*
|
|
9
|
+
* **Defaults applied by `number()`:**
|
|
10
|
+
* ```ts
|
|
11
|
+
* {
|
|
12
|
+
* type: "number",
|
|
13
|
+
* label: "", // inferred from the field key by defineCollection
|
|
14
|
+
* required: false, // field is optional by default
|
|
15
|
+
* admin: {
|
|
16
|
+
* hidden: false, // visible in the admin form
|
|
17
|
+
* readOnly: false, // editable by default
|
|
18
|
+
* position: "main", // placed in the main content column, not the sidebar
|
|
19
|
+
* width: "full", // spans the full form width, not half
|
|
20
|
+
* cellAlignment: "left", // value aligned left in the data table column
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* // Minimal — label is inferred from the key ("Price")
|
|
28
|
+
* price: number()
|
|
29
|
+
*
|
|
30
|
+
* // Required quantity with a minimum of 1 and a database index
|
|
31
|
+
* quantity: number({ required: true, min: { value: 1 }, index: "by_quantity" })
|
|
32
|
+
*
|
|
33
|
+
* // Rating capped between 0 and 5 with custom error messages
|
|
34
|
+
* rating: number({
|
|
35
|
+
* min: { value: 0, error: "Rating cannot be negative" },
|
|
36
|
+
* max: { value: 5, error: "Rating cannot exceed 5" },
|
|
37
|
+
* admin: { width: "half" },
|
|
38
|
+
* })
|
|
39
|
+
*
|
|
40
|
+
* // Pre-filled default for a score field
|
|
41
|
+
* score: number({ defaultValue: 100 })
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @see {@link NumberField} for the resolved type after defaults are applied
|
|
45
|
+
* @see {@link number} for the config function that applies defaults
|
|
46
|
+
* @see {@link BaseFieldInput} for shared properties (`label`, `description`, `required`, `admin`, `index`, `searchIndex`)
|
|
47
|
+
*/
|
|
48
|
+
export interface NumberFieldInput<TFieldMeta extends {} = {}> extends BaseFieldInput<TFieldMeta> {
|
|
49
|
+
/**
|
|
50
|
+
* Pre-filled value shown in the admin form when creating a new document.
|
|
51
|
+
* Does not affect database values — only the form's initial state.
|
|
52
|
+
*/
|
|
53
|
+
defaultValue?: number;
|
|
54
|
+
/** Minimum allowed numeric value config. */
|
|
55
|
+
min?: {
|
|
56
|
+
/** Minimum allowed numeric value. */
|
|
57
|
+
value: number;
|
|
58
|
+
/** Error message shown when the value is below the minimum. */
|
|
59
|
+
error?: string;
|
|
60
|
+
};
|
|
61
|
+
/** Maximum allowed numeric value config. */
|
|
62
|
+
max?: {
|
|
63
|
+
/** Maximum allowed numeric value. */
|
|
64
|
+
value: number;
|
|
65
|
+
/** Error message shown when the value exceeds the maximum. */
|
|
66
|
+
error?: string;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolved configuration for a `number()` field, after all defaults are applied.
|
|
71
|
+
*
|
|
72
|
+
* @see {@link NumberFieldInput} for the user-facing input type
|
|
73
|
+
* @see {@link number} for the config function that produces this type
|
|
74
|
+
*/
|
|
75
|
+
export interface NumberField<TFieldMeta extends {} = {}> extends BaseField<TFieldMeta> {
|
|
76
|
+
readonly type: typeof ADMIN_FIELDS.number.type;
|
|
77
|
+
/** Display label shown in the admin form. Always set — inferred from the field key if not provided. */
|
|
78
|
+
label: string;
|
|
79
|
+
/** Whether this field is required in the database schema. */
|
|
80
|
+
required: boolean;
|
|
81
|
+
/** Resolved admin UI configuration with all defaults applied. */
|
|
82
|
+
admin: FieldAdminConfig;
|
|
83
|
+
/** Pre-filled numeric value shown in the admin form when creating a new document. */
|
|
84
|
+
defaultValue: number;
|
|
85
|
+
/** Minimum allowed numeric value config. */
|
|
86
|
+
min?: {
|
|
87
|
+
/** Minimum allowed numeric value. */
|
|
88
|
+
value: number;
|
|
89
|
+
/** Error message shown when the value is below the minimum. */
|
|
90
|
+
error?: string;
|
|
91
|
+
};
|
|
92
|
+
/** Maximum allowed numeric value config. */
|
|
93
|
+
max?: {
|
|
94
|
+
/** Maximum allowed numeric value. */
|
|
95
|
+
value: number;
|
|
96
|
+
/** Error message shown when the value exceeds the maximum. */
|
|
97
|
+
error?: string;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/number/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,gBAAgB,CAC/B,UAAU,SAAS,EAAE,GAAG,EAAE,CAC1B,SAAQ,cAAc,CAAC,UAAU,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,+DAA+D;QAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,8DAA8D;QAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,UAAU,SAAS,EAAE,GAAG,EAAE,CAAE,SAAQ,SAAS,CAAC,UAAU,CAAC;IACpF,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/C,uGAAuG;IACvG,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,+DAA+D;QAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE;QACJ,qCAAqC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,8DAA8D;QAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { NumberField } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a number field definition to a Convex schema validator.
|
|
4
|
+
*
|
|
5
|
+
* Generates the appropriate v.number() or v.optional(v.number()) code
|
|
6
|
+
* for the Convex schema based on the field's required property.
|
|
7
|
+
*
|
|
8
|
+
* **Important notes:**
|
|
9
|
+
* - min/max are runtime validation constraints, NOT schema constraints
|
|
10
|
+
* - They don't affect the generated Convex value type
|
|
11
|
+
* - Validation happens in the admin panel and mutation handlers
|
|
12
|
+
* - The index property is handled separately by index collection logic
|
|
13
|
+
*
|
|
14
|
+
* This function is used by the CLI during schema generation to build
|
|
15
|
+
* the Convex schema file.
|
|
16
|
+
*
|
|
17
|
+
* @param props - numberFieldToValidator() input props
|
|
18
|
+
* @param props.field - The number field definition
|
|
19
|
+
* @returns Convex value type string: "v.number()" or "v.optional(v.number())"
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const field1 = number({ required: true })
|
|
24
|
+
* numberFieldToValidator({ field: field1 }) // "v.number()"
|
|
25
|
+
*
|
|
26
|
+
* const field2 = number({ required: false })
|
|
27
|
+
* numberFieldToValidator({ field: field2 }) // "v.optional(v.number())"
|
|
28
|
+
*
|
|
29
|
+
* const field3 = number({ min: { value: 0 }, max: { value: 100 } })
|
|
30
|
+
* numberFieldToValidator({ field: field3 }) // "v.optional(v.number())"
|
|
31
|
+
* // Note: Range constraints don't affect schema, handled at validation layer
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @internal - Used by schema generation, not typically called by users
|
|
35
|
+
*/
|
|
36
|
+
export declare function numberFieldToValidator(props: {
|
|
37
|
+
field: NumberField;
|
|
38
|
+
}): string;
|
|
39
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/fields/number/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,MAAM,CAK5E"}
|