@revisium/schema-toolkit 0.20.2 → 0.21.1
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 +216 -0
- package/dist/FormulaPathBuilder-BUJRR0Am.d.cts +48 -0
- package/dist/FormulaPathBuilder-QR0htn-e.d.ts +48 -0
- package/dist/{chunk-VGADCIBG.cjs → chunk-2PIMJSWJ.cjs} +12 -8
- package/dist/chunk-3MJP73IJ.js +1 -0
- package/dist/{chunk-LLHQWDAR.js → chunk-4U2RZHMX.js} +19 -21
- package/dist/{chunk-Q2UOTIMG.js → chunk-5DUMJHCA.js} +0 -2
- package/dist/{chunk-V6JTSET2.cjs → chunk-7JWCZZPJ.cjs} +49 -51
- package/dist/{chunk-YFWOURZL.js → chunk-7PEC6ZYY.js} +0 -2
- package/dist/chunk-AV5EZUMZ.cjs +2 -0
- package/dist/{chunk-3JZKQWQH.js → chunk-AWFMSOHM.js} +5 -7
- package/dist/{chunk-X2VRR7V7.cjs → chunk-ERW5XVED.cjs} +0 -2
- package/dist/{chunk-XNFSFT7T.cjs → chunk-EVD5ZI55.cjs} +0 -2
- package/dist/{chunk-ZRNFSUOV.cjs → chunk-FL6PWPVJ.cjs} +0 -2
- package/dist/{chunk-55AMH44G.js → chunk-FTBRJODD.js} +28 -30
- package/dist/{chunk-R3MS2N4A.js → chunk-GJM63Q4K.js} +0 -2
- package/dist/{chunk-U5YDA3LA.js → chunk-HFMZITNE.js} +238 -31
- package/dist/{chunk-EGC32GPY.cjs → chunk-ITYABUR5.cjs} +19 -21
- package/dist/{chunk-R4CFU33U.js → chunk-IZMBM36H.js} +10 -9
- package/dist/chunk-J4RVO37K.cjs +2 -0
- package/dist/{chunk-QEV4Q4TR.js → chunk-JLXX3SGF.js} +30 -32
- package/dist/{chunk-MPF6VCB5.js → chunk-NO655UI5.js} +0 -2
- package/dist/chunk-OAUVP6CU.js +1 -0
- package/dist/{chunk-B3T6YB2D.cjs → chunk-ONW2OVNQ.cjs} +28 -30
- package/dist/{chunk-32FZHFIO.cjs → chunk-QKA7DJDN.cjs} +0 -2
- package/dist/{chunk-46ME2TAU.cjs → chunk-RCCBUOGY.cjs} +5 -7
- package/dist/{chunk-IPL2CGVA.cjs → chunk-RQBW7ATZ.cjs} +0 -2
- package/dist/{chunk-FZ2MS4Q5.cjs → chunk-S5SRXND6.cjs} +307 -97
- package/dist/{chunk-WSPFHUHU.cjs → chunk-T3QQSHAC.cjs} +0 -2
- package/dist/{chunk-J6SCHJKG.cjs → chunk-VMELKZXD.cjs} +0 -2
- package/dist/{chunk-5VDDLW7U.js → chunk-WE4OLW5U.js} +0 -2
- package/dist/{chunk-JUOGJFTL.js → chunk-XKWWCXGB.js} +0 -2
- package/dist/{chunk-ZBPUTF3Q.js → chunk-ZPRBA4AQ.js} +0 -2
- package/dist/consts/index.cjs +4 -6
- package/dist/consts/index.js +2 -4
- package/dist/core/index.cjs +65 -69
- package/dist/core/index.d.cts +6 -4
- package/dist/core/index.d.ts +6 -4
- package/dist/core/index.js +4 -8
- package/dist/formula/index.cjs +7 -9
- package/dist/formula/index.d.cts +1 -1
- package/dist/formula/index.d.ts +1 -1
- package/dist/formula/index.js +1 -3
- package/dist/index.cjs +269 -248
- package/dist/index.d.cts +8 -7
- package/dist/index.d.ts +8 -7
- package/dist/index.js +15 -18
- package/dist/{json-patch.types-DY7k9hxy.d.ts → json-patch.types-BpVnp08Z.d.ts} +1 -1
- package/dist/{json-patch.types-Cu0Medki.d.cts → json-patch.types-eM6pYC2P.d.cts} +1 -1
- package/dist/{json-string.store-C58zbl31.d.ts → json-string.store-DfdLcgnM.d.ts} +11 -11
- package/dist/{json-string.store-DuI--IL2.d.cts → json-string.store-cAOADo23.d.cts} +11 -11
- package/dist/lib/index.cjs +51 -54
- package/dist/lib/index.d.cts +3 -3
- package/dist/lib/index.d.ts +3 -3
- package/dist/lib/index.js +7 -10
- package/dist/mocks/index.cjs +30 -21
- package/dist/mocks/index.d.cts +22 -8
- package/dist/mocks/index.d.ts +22 -8
- package/dist/mocks/index.js +2 -5
- package/dist/model/index.cjs +85 -78
- package/dist/model/index.d.cts +171 -346
- package/dist/model/index.d.ts +171 -346
- package/dist/model/index.js +4 -9
- package/dist/plugins/index.cjs +20 -23
- package/dist/plugins/index.d.cts +10 -10
- package/dist/plugins/index.d.ts +10 -10
- package/dist/plugins/index.js +2 -5
- package/dist/{schema.types-B5OgKLpV.d.cts → schema.types-On_VGw2m.d.cts} +7 -6
- package/dist/{schema.types-B5OgKLpV.d.ts → schema.types-On_VGw2m.d.ts} +7 -6
- package/dist/typed-BRZhUqGG.d.ts +502 -0
- package/dist/typed-Cri0IYAn.d.cts +502 -0
- package/dist/types/index.cjs +6 -9
- package/dist/types/index.d.cts +7 -5
- package/dist/types/index.d.ts +7 -5
- package/dist/types/index.js +2 -5
- package/dist/{FormulaPathBuilder-DwlKOvVB.d.ts → types-BIvIURgy.d.cts} +37 -82
- package/dist/{FormulaPathBuilder-D9LkBcSv.d.cts → types-C_pTFtSY.d.ts} +37 -82
- package/dist/validation-schemas/index.cjs +18 -20
- package/dist/validation-schemas/index.js +1 -3
- package/package.json +1 -1
- package/dist/chunk-32FZHFIO.cjs.map +0 -1
- package/dist/chunk-3FJZMVWA.js +0 -3
- package/dist/chunk-3FJZMVWA.js.map +0 -1
- package/dist/chunk-3IKI64T2.js +0 -3
- package/dist/chunk-3IKI64T2.js.map +0 -1
- package/dist/chunk-3JZKQWQH.js.map +0 -1
- package/dist/chunk-46ME2TAU.cjs.map +0 -1
- package/dist/chunk-55AMH44G.js.map +0 -1
- package/dist/chunk-5VDDLW7U.js.map +0 -1
- package/dist/chunk-B3T6YB2D.cjs.map +0 -1
- package/dist/chunk-EGC32GPY.cjs.map +0 -1
- package/dist/chunk-FZ2MS4Q5.cjs.map +0 -1
- package/dist/chunk-G6ZKEVVU.cjs +0 -4
- package/dist/chunk-G6ZKEVVU.cjs.map +0 -1
- package/dist/chunk-IPL2CGVA.cjs.map +0 -1
- package/dist/chunk-J6SCHJKG.cjs.map +0 -1
- package/dist/chunk-JUOGJFTL.js.map +0 -1
- package/dist/chunk-L6HE7QPU.cjs +0 -4
- package/dist/chunk-L6HE7QPU.cjs.map +0 -1
- package/dist/chunk-LLHQWDAR.js.map +0 -1
- package/dist/chunk-MPF6VCB5.js.map +0 -1
- package/dist/chunk-NY3H6C7K.js +0 -3
- package/dist/chunk-NY3H6C7K.js.map +0 -1
- package/dist/chunk-Q2UOTIMG.js.map +0 -1
- package/dist/chunk-QEV4Q4TR.js.map +0 -1
- package/dist/chunk-R3MS2N4A.js.map +0 -1
- package/dist/chunk-R4CFU33U.js.map +0 -1
- package/dist/chunk-TBFTADML.cjs +0 -4
- package/dist/chunk-TBFTADML.cjs.map +0 -1
- package/dist/chunk-U5YDA3LA.js.map +0 -1
- package/dist/chunk-V6JTSET2.cjs.map +0 -1
- package/dist/chunk-VGADCIBG.cjs.map +0 -1
- package/dist/chunk-WSPFHUHU.cjs.map +0 -1
- package/dist/chunk-X2VRR7V7.cjs.map +0 -1
- package/dist/chunk-XNFSFT7T.cjs.map +0 -1
- package/dist/chunk-YFWOURZL.js.map +0 -1
- package/dist/chunk-ZBPUTF3Q.js.map +0 -1
- package/dist/chunk-ZRNFSUOV.cjs.map +0 -1
- package/dist/consts/index.cjs.map +0 -1
- package/dist/consts/index.js.map +0 -1
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/formula/index.cjs.map +0 -1
- package/dist/formula/index.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/json-value-patch.types-CgiEpchp.d.ts +0 -24
- package/dist/json-value-patch.types-LEJxcIWR.d.cts +0 -24
- package/dist/lib/index.cjs.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/mocks/index.cjs.map +0 -1
- package/dist/mocks/index.js.map +0 -1
- package/dist/model/index.cjs.map +0 -1
- package/dist/model/index.js.map +0 -1
- package/dist/plugins/index.cjs.map +0 -1
- package/dist/plugins/index.js.map +0 -1
- package/dist/types/index.cjs.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/validation-schemas/index.cjs.map +0 -1
- package/dist/validation-schemas/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/schema.types.ts"],"names":["JsonSchemaTypeName"],"mappings":";;;AAAO,IAAK,kBAAA,qBAAAA,mBAAAA,KAAL;AACL,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,OAAA,CAAA,GAAQ,OAAA;AALE,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA","file":"chunk-J6SCHJKG.cjs","sourcesContent":["export enum JsonSchemaTypeName {\n String = 'string',\n Number = 'number',\n Boolean = 'boolean',\n Object = 'object',\n Array = 'array',\n}\n\nexport type XFormula = {\n version: 1;\n expression: string;\n};\n\nexport type JsonSchemaSharedFields = {\n deprecated?: boolean;\n description?: string;\n title?: string;\n};\n\nexport type ContentMediaType =\n | 'text/plain'\n | 'text/markdown'\n | 'text/html'\n | 'application/json'\n | 'application/schema+json'\n | 'application/yaml';\n\nexport type JsonStringSchema = {\n type: JsonSchemaTypeName.String;\n default: string;\n foreignKey?: string;\n readOnly?: boolean;\n required?: boolean;\n title?: string;\n description?: string;\n deprecated?: boolean;\n pattern?: string;\n format?: 'date-time' | 'date' | 'time' | 'email' | 'regex';\n contentMediaType?: ContentMediaType;\n minLength?: number;\n maxLength?: number;\n enum?: string[];\n 'x-formula'?: XFormula;\n} & JsonSchemaSharedFields;\n\nexport type JsonNumberSchema = {\n type: JsonSchemaTypeName.Number;\n default: number;\n readOnly?: boolean;\n title?: string;\n description?: string;\n deprecated?: boolean;\n minimum?: number;\n maximum?: number;\n enum?: number[];\n 'x-formula'?: XFormula;\n} & JsonSchemaSharedFields;\n\nexport type JsonBooleanSchema = {\n type: JsonSchemaTypeName.Boolean;\n default: boolean;\n readOnly?: boolean;\n title?: string;\n description?: string;\n deprecated?: boolean;\n 'x-formula'?: XFormula;\n} & JsonSchemaSharedFields;\n\nexport type JsonSchemaPrimitives =\n | JsonStringSchema\n | JsonNumberSchema\n | JsonBooleanSchema;\n\nexport type JsonObjectSchema = {\n type: JsonSchemaTypeName.Object;\n additionalProperties: false;\n required: string[];\n properties: Record<string, JsonSchema>;\n title?: string;\n description?: string;\n deprecated?: boolean;\n} & JsonSchemaSharedFields;\n\nexport type JsonArraySchema = {\n type: JsonSchemaTypeName.Array;\n items: JsonSchema;\n title?: string;\n description?: string;\n deprecated?: boolean;\n} & JsonSchemaSharedFields;\n\nexport type JsonRefSchema = {\n $ref: string;\n title?: string;\n description?: string;\n deprecated?: boolean;\n};\n\nexport type JsonSchema =\n | JsonObjectSchema\n | JsonArraySchema\n | JsonSchemaPrimitives\n | JsonRefSchema;\n\nexport type JsonSchemaWithoutRef =\n | JsonObjectSchema\n | JsonArraySchema\n | JsonSchemaPrimitives;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/validation-schemas/shared-fields.ts","../src/validation-schemas/meta-schema.ts","../src/validation-schemas/json-patch-schema.ts","../src/validation-schemas/history-patches-schema.ts","../src/validation-schemas/table-migrations-schema.ts"],"names":[],"mappings":"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","file":"chunk-JUOGJFTL.js","sourcesContent":["export const sharedFields = {\n deprecated: {\n type: 'boolean',\n },\n title: {\n type: 'string',\n },\n description: {\n type: 'string',\n },\n};\n","import { Schema } from 'ajv/dist/2020';\nimport { sharedFields } from './shared-fields.js';\n\n// https://json-schema.org/specification#single-vocabulary-meta-schemas\n\nexport const xFormulaSchema: Schema = {\n type: 'object',\n properties: {\n version: { const: 1 },\n expression: { type: 'string', minLength: 1, maxLength: 10000 },\n },\n required: ['version', 'expression'],\n additionalProperties: false,\n};\n\n// When x-formula is present, readOnly must be true\nexport const xFormulaRequiresReadOnly: Schema = {\n if: {\n properties: { 'x-formula': { type: 'object' } },\n required: ['x-formula'],\n },\n then: {\n properties: { readOnly: { const: true } },\n required: ['readOnly'],\n },\n};\n\n// foreignKey and x-formula are mutually exclusive\nexport const foreignKeyExcludesFormula: Schema = {\n if: {\n properties: { foreignKey: { type: 'string' } },\n required: ['foreignKey'],\n },\n then: {\n not: { required: ['x-formula'] },\n },\n};\n\nexport const refMetaSchema: Schema = {\n type: 'object',\n properties: {\n ...sharedFields,\n $ref: {\n type: 'string',\n },\n },\n additionalProperties: false,\n required: ['$ref'],\n};\n\nexport const baseStringFields: Schema = {\n type: {\n const: 'string',\n },\n default: {\n type: 'string',\n },\n readOnly: {\n type: 'boolean',\n },\n pattern: {\n type: 'string',\n format: 'regex',\n },\n enum: {\n type: 'array',\n items: { type: 'string' },\n minItems: 1,\n uniqueItems: true,\n },\n format: {\n type: 'string',\n enum: ['date-time', 'date', 'time', 'email', 'regex'],\n },\n contentMediaType: {\n type: 'string',\n enum: [\n 'text/plain',\n 'text/markdown',\n 'text/html',\n 'application/json',\n 'application/schema+json',\n 'application/yaml',\n ],\n },\n 'x-formula': xFormulaSchema,\n ...sharedFields,\n};\n\nexport const stringMetaSchema: Schema = {\n type: 'object',\n properties: {\n ...baseStringFields,\n foreignKey: {\n type: 'string',\n },\n },\n additionalProperties: false,\n required: ['type', 'default'],\n allOf: [xFormulaRequiresReadOnly, foreignKeyExcludesFormula],\n};\n\nexport const noForeignKeyStringMetaSchema: Schema = {\n type: 'object',\n properties: {\n ...baseStringFields,\n },\n additionalProperties: false,\n required: ['type', 'default'],\n ...xFormulaRequiresReadOnly,\n};\n\nexport const numberMetaSchema: Schema = {\n type: 'object',\n properties: {\n type: {\n const: 'number',\n },\n default: {\n type: 'number',\n },\n readOnly: {\n type: 'boolean',\n },\n 'x-formula': xFormulaSchema,\n ...sharedFields,\n },\n additionalProperties: false,\n required: ['type', 'default'],\n ...xFormulaRequiresReadOnly,\n};\n\nexport const booleanMetaSchema: Schema = {\n type: 'object',\n properties: {\n type: {\n const: 'boolean',\n },\n default: {\n type: 'boolean',\n },\n readOnly: {\n type: 'boolean',\n },\n 'x-formula': xFormulaSchema,\n ...sharedFields,\n },\n additionalProperties: false,\n required: ['type', 'default'],\n ...xFormulaRequiresReadOnly,\n};\n\nexport const objectMetaSchema: Schema = {\n type: 'object',\n properties: {\n type: {\n const: 'object',\n },\n ...sharedFields,\n properties: {\n type: 'object',\n additionalProperties: { $dynamicRef: '#meta' },\n default: {},\n },\n additionalProperties: { const: false },\n required: { $ref: '#/$defs/stringArray' },\n },\n additionalProperties: false,\n required: ['type', 'properties', 'additionalProperties', 'required'],\n};\n\nexport const arrayMetaSchema: Schema = {\n type: 'object',\n properties: {\n type: {\n const: 'array',\n },\n ...sharedFields,\n items: {\n oneOf: [\n { $ref: '#/$defs/refSchema' },\n { $ref: '#/$defs/objectSchema' },\n { $ref: '#/$defs/arraySchema' },\n { $ref: '#/$defs/stringSchema' },\n { $ref: '#/$defs/numberSchema' },\n { $ref: '#/$defs/booleanSchema' },\n ],\n },\n },\n additionalProperties: false,\n required: ['type', 'items'],\n};\n\nexport const metaSchema: Schema = {\n $id: 'meta-schema.json',\n type: 'object',\n $dynamicAnchor: 'meta',\n oneOf: [\n { $ref: '#/$defs/refSchema' },\n { $ref: '#/$defs/objectSchema' },\n { $ref: '#/$defs/arraySchema' },\n { $ref: '#/$defs/stringSchema' },\n { $ref: '#/$defs/numberSchema' },\n { $ref: '#/$defs/booleanSchema' },\n ],\n $defs: {\n stringArray: {\n type: 'array',\n items: { type: 'string' },\n uniqueItems: true,\n default: [],\n },\n refSchema: refMetaSchema,\n objectSchema: objectMetaSchema,\n stringSchema: stringMetaSchema,\n numberSchema: numberMetaSchema,\n booleanSchema: booleanMetaSchema,\n arraySchema: arrayMetaSchema,\n },\n};\n\nexport const notForeignKeyMetaSchema: Schema = {\n type: 'object',\n $dynamicAnchor: 'meta',\n oneOf: [\n { $ref: '#/$defs/refSchema' },\n { $ref: '#/$defs/objectSchema' },\n { $ref: '#/$defs/arraySchema' },\n { $ref: '#/$defs/stringSchema' },\n { $ref: '#/$defs/numberSchema' },\n { $ref: '#/$defs/booleanSchema' },\n ],\n $defs: {\n stringArray: {\n type: 'array',\n items: { type: 'string' },\n uniqueItems: true,\n default: [],\n },\n refSchema: refMetaSchema,\n objectSchema: objectMetaSchema,\n stringSchema: noForeignKeyStringMetaSchema,\n numberSchema: numberMetaSchema,\n booleanSchema: booleanMetaSchema,\n arraySchema: arrayMetaSchema,\n },\n};\n","import { Schema } from 'ajv/dist/2020';\nimport {\n arrayMetaSchema,\n booleanMetaSchema,\n numberMetaSchema,\n objectMetaSchema,\n stringMetaSchema,\n} from './meta-schema.js';\n\n// copied and modified from https://json.schemastore.org/json-patch\n\nexport const jsonPatchSchema: Schema = {\n $id: 'json-patch-schema.json',\n definitions: {\n path: {\n description: 'A JSON Pointer path.',\n type: 'string',\n },\n objectSchema: objectMetaSchema,\n stringSchema: stringMetaSchema,\n numberSchema: numberMetaSchema,\n booleanSchema: booleanMetaSchema,\n arraySchema: arrayMetaSchema,\n },\n minItems: 1,\n items: {\n oneOf: [\n {\n type: 'object',\n additionalProperties: false,\n required: ['value', 'op', 'path'],\n properties: {\n path: {\n $ref: '#/definitions/path',\n },\n op: {\n description: 'The operation to perform.',\n type: 'string',\n enum: ['add', 'replace'],\n },\n value: {\n $ref: 'meta-schema.json',\n description: 'The value to add, replace or test.',\n },\n },\n },\n {\n type: 'object',\n additionalProperties: false,\n required: ['op', 'path'],\n properties: {\n path: {\n $ref: '#/definitions/path',\n },\n op: {\n description: 'The operation to perform.',\n type: 'string',\n enum: ['remove'],\n },\n },\n },\n {\n type: 'object',\n additionalProperties: false,\n required: ['from', 'op', 'path'],\n properties: {\n path: {\n $ref: '#/definitions/path',\n },\n op: {\n description: 'The operation to perform.',\n type: 'string',\n enum: ['move', 'copy'],\n },\n from: {\n $ref: '#/definitions/path',\n description:\n 'A JSON Pointer path pointing to the location to move/copy from.',\n },\n },\n },\n ],\n },\n title: 'JSON schema for JSONPatch files',\n type: 'array',\n};\n","import { Schema } from 'ajv/dist/2020';\n\nexport const historyPatchesSchema: Schema = {\n $id: 'history-patches-schema.json',\n type: 'array',\n minItems: 1,\n items: {\n type: 'object',\n properties: {\n patches: {\n $ref: 'json-patch-schema.json',\n },\n hash: {\n type: 'string',\n },\n },\n required: ['patches', 'hash'],\n },\n};\n","import { Schema } from 'ajv/dist/2020';\n\nexport const tableMigrationsSchema: Schema = {\n $id: 'table-migrations-schema.json',\n oneOf: [\n { $ref: '#/definitions/InitMigration' },\n { $ref: '#/definitions/UpdateMigration' },\n { $ref: '#/definitions/RenameMigration' },\n { $ref: '#/definitions/RemoveMigration' },\n ],\n definitions: {\n InitMigration: {\n type: 'object',\n additionalProperties: false,\n required: ['changeType', 'tableId', 'hash', 'id', 'schema'],\n properties: {\n changeType: { type: 'string', const: 'init' },\n tableId: { type: 'string' },\n hash: { type: 'string' },\n id: { type: 'string' },\n schema: { $ref: 'meta-schema.json' },\n },\n },\n UpdateMigration: {\n type: 'object',\n additionalProperties: false,\n required: ['changeType', 'tableId', 'hash', 'id', 'patches'],\n properties: {\n changeType: { type: 'string', const: 'update' },\n tableId: { type: 'string' },\n hash: { type: 'string' },\n id: { type: 'string' },\n patches: { $ref: 'json-patch-schema.json' },\n },\n },\n RenameMigration: {\n type: 'object',\n additionalProperties: false,\n required: ['changeType', 'id', 'tableId', 'nextTableId'],\n properties: {\n changeType: { type: 'string', const: 'rename' },\n id: { type: 'string' },\n tableId: { type: 'string' },\n nextTableId: { type: 'string' },\n },\n },\n RemoveMigration: {\n type: 'object',\n additionalProperties: false,\n required: ['changeType', 'id', 'tableId'],\n properties: {\n changeType: { type: 'string', const: 'remove' },\n id: { type: 'string' },\n tableId: { type: 'string' },\n },\n },\n },\n title: 'JSON Schema for a Single Migration',\n};\n"]}
|
package/dist/chunk-L6HE7QPU.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-L6HE7QPU.cjs"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/row-id.schema.ts","../src/plugins/row-version-id.schema.ts","../src/plugins/row-created-id.schema.ts","../src/plugins/row-created-at.schema.ts","../src/plugins/row-published-at.schema.ts","../src/plugins/row-updated-at.schema.ts","../src/plugins/row-hash.schema.ts","../src/plugins/row-schema-hash.schema.ts","../src/plugins/file-schema.ts"],"names":[],"mappings":"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","file":"chunk-LLHQWDAR.js","sourcesContent":["import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowIdSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowIdSchema = {\n $id: SystemSchemaIds.RowId,\n ...rowIdSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowVersionIdSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowVersionIdSchema = {\n $id: SystemSchemaIds.RowVersionId,\n ...rowVersionIdSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowCreatedIdSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowCreatedIdSchema = {\n $id: SystemSchemaIds.RowCreatedId,\n ...rowCreatedIdSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowCreatedAtSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowCreatedAtSchema = {\n $id: SystemSchemaIds.RowCreatedAt,\n ...rowCreatedAtSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowPublishedAtSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n};\n\nexport const ajvRowPublishedAtSchema = {\n $id: SystemSchemaIds.RowPublishedAt,\n ...rowPublishedAtSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowUpdatedAtSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowUpdatedAtSchema = {\n $id: SystemSchemaIds.RowUpdatedAt,\n ...rowUpdatedAtSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowHashSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowHashSchema = {\n $id: SystemSchemaIds.RowHash,\n ...rowHashSchema,\n};\n","import { JsonStringSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const rowSchemaHashSchema: JsonStringSchema = {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n};\n\nexport const ajvRowSchemaHashSchema = {\n $id: SystemSchemaIds.RowSchemaHash,\n ...rowSchemaHashSchema,\n};\n","import { JsonObjectSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { SystemSchemaIds } from '../consts/system-schema-ids.js';\n\nexport const fileSchema: JsonObjectSchema = {\n type: JsonSchemaTypeName.Object,\n properties: {\n status: { type: JsonSchemaTypeName.String, default: '', readOnly: true },\n fileId: { type: JsonSchemaTypeName.String, default: '', readOnly: true },\n url: { type: JsonSchemaTypeName.String, default: '', readOnly: true },\n fileName: { type: JsonSchemaTypeName.String, default: '' },\n hash: {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n },\n extension: {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n },\n mimeType: {\n type: JsonSchemaTypeName.String,\n default: '',\n readOnly: true,\n },\n size: {\n type: JsonSchemaTypeName.Number,\n default: 0,\n readOnly: true,\n },\n width: {\n type: JsonSchemaTypeName.Number,\n default: 0,\n readOnly: true,\n },\n height: {\n type: JsonSchemaTypeName.Number,\n default: 0,\n readOnly: true,\n },\n },\n required: [\n 'status',\n 'fileId',\n 'url',\n 'fileName',\n 'hash',\n 'extension',\n 'mimeType',\n 'size',\n 'width',\n 'height',\n ],\n additionalProperties: false,\n};\n\nexport const ajvFileSchema = {\n $id: SystemSchemaIds.File,\n ...fileSchema,\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/schema.types.ts"],"names":["JsonSchemaTypeName"],"mappings":";AAAO,IAAK,kBAAA,qBAAAA,mBAAAA,KAAL;AACL,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,oBAAA,QAAA,CAAA,GAAS,QAAA;AACT,EAAAA,oBAAA,OAAA,CAAA,GAAQ,OAAA;AALE,EAAA,OAAAA,mBAAAA;AAAA,CAAA,EAAA,kBAAA,IAAA,EAAA","file":"chunk-MPF6VCB5.js","sourcesContent":["export enum JsonSchemaTypeName {\n String = 'string',\n Number = 'number',\n Boolean = 'boolean',\n Object = 'object',\n Array = 'array',\n}\n\nexport type XFormula = {\n version: 1;\n expression: string;\n};\n\nexport type JsonSchemaSharedFields = {\n deprecated?: boolean;\n description?: string;\n title?: string;\n};\n\nexport type ContentMediaType =\n | 'text/plain'\n | 'text/markdown'\n | 'text/html'\n | 'application/json'\n | 'application/schema+json'\n | 'application/yaml';\n\nexport type JsonStringSchema = {\n type: JsonSchemaTypeName.String;\n default: string;\n foreignKey?: string;\n readOnly?: boolean;\n required?: boolean;\n title?: string;\n description?: string;\n deprecated?: boolean;\n pattern?: string;\n format?: 'date-time' | 'date' | 'time' | 'email' | 'regex';\n contentMediaType?: ContentMediaType;\n minLength?: number;\n maxLength?: number;\n enum?: string[];\n 'x-formula'?: XFormula;\n} & JsonSchemaSharedFields;\n\nexport type JsonNumberSchema = {\n type: JsonSchemaTypeName.Number;\n default: number;\n readOnly?: boolean;\n title?: string;\n description?: string;\n deprecated?: boolean;\n minimum?: number;\n maximum?: number;\n enum?: number[];\n 'x-formula'?: XFormula;\n} & JsonSchemaSharedFields;\n\nexport type JsonBooleanSchema = {\n type: JsonSchemaTypeName.Boolean;\n default: boolean;\n readOnly?: boolean;\n title?: string;\n description?: string;\n deprecated?: boolean;\n 'x-formula'?: XFormula;\n} & JsonSchemaSharedFields;\n\nexport type JsonSchemaPrimitives =\n | JsonStringSchema\n | JsonNumberSchema\n | JsonBooleanSchema;\n\nexport type JsonObjectSchema = {\n type: JsonSchemaTypeName.Object;\n additionalProperties: false;\n required: string[];\n properties: Record<string, JsonSchema>;\n title?: string;\n description?: string;\n deprecated?: boolean;\n} & JsonSchemaSharedFields;\n\nexport type JsonArraySchema = {\n type: JsonSchemaTypeName.Array;\n items: JsonSchema;\n title?: string;\n description?: string;\n deprecated?: boolean;\n} & JsonSchemaSharedFields;\n\nexport type JsonRefSchema = {\n $ref: string;\n title?: string;\n description?: string;\n deprecated?: boolean;\n};\n\nexport type JsonSchema =\n | JsonObjectSchema\n | JsonArraySchema\n | JsonSchemaPrimitives\n | JsonRefSchema;\n\nexport type JsonSchemaWithoutRef =\n | JsonObjectSchema\n | JsonArraySchema\n | JsonSchemaPrimitives;\n"]}
|
package/dist/chunk-NY3H6C7K.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-NY3H6C7K.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/consts/system-schema-ids.ts"],"names":["SystemSchemaIds"],"mappings":";AAAO,IAAK,eAAA,qBAAAA,gBAAAA,KAAL;AACL,EAAAA,iBAAA,OAAA,CAAA,GAAQ,gDAAA;AACR,EAAAA,iBAAA,cAAA,CAAA,GAAe,wDAAA;AACf,EAAAA,iBAAA,cAAA,CAAA,GAAe,wDAAA;AACf,EAAAA,iBAAA,cAAA,CAAA,GAAe,wDAAA;AACf,EAAAA,iBAAA,gBAAA,CAAA,GAAiB,0DAAA;AACjB,EAAAA,iBAAA,cAAA,CAAA,GAAe,wDAAA;AACf,EAAAA,iBAAA,SAAA,CAAA,GAAU,kDAAA;AACV,EAAAA,iBAAA,eAAA,CAAA,GAAgB,yDAAA;AAChB,EAAAA,iBAAA,MAAA,CAAA,GAAO,8CAAA;AATG,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA","file":"chunk-Q2UOTIMG.js","sourcesContent":["export enum SystemSchemaIds {\n RowId = 'urn:jsonschema:io:revisium:row-id-schema:1.0.0',\n RowCreatedId = 'urn:jsonschema:io:revisium:row-created-id-schema:1.0.0',\n RowVersionId = 'urn:jsonschema:io:revisium:row-version-id-schema:1.0.0',\n RowCreatedAt = 'urn:jsonschema:io:revisium:row-created-at-schema:1.0.0',\n RowPublishedAt = 'urn:jsonschema:io:revisium:row-published-at-schema:1.0.0',\n RowUpdatedAt = 'urn:jsonschema:io:revisium:row-updated-at-schema:1.0.0',\n RowHash = 'urn:jsonschema:io:revisium:row-hash-schema:1.0.0',\n RowSchemaHash = 'urn:jsonschema:io:revisium:row-schema-hash-schema:1.0.0',\n File = 'urn:jsonschema:io:revisium:file-schema:1.0.0',\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/createJsonSchemaStore.ts","../src/lib/getJsonSchemaStoreByPath.ts","../src/lib/getParentForPath.ts","../src/lib/validateJsonFieldName.ts","../src/lib/applyPatches.ts","../src/lib/getDBJsonPathByJsonSchemaStore.ts","../src/lib/getPathByStore.ts","../src/lib/traverseStore.ts","../src/lib/getForeignKeyPatchesFromSchema.ts","../src/lib/getForeignKeysFromSchema.ts","../src/lib/traverseValue.ts","../src/lib/getForeignKeysFromValue.ts","../src/lib/getInvalidFieldNamesInSchema.ts","../src/lib/json-path-utils.ts","../src/lib/getJsonValueByPath.ts","../src/lib/replaceForeignKeyValue.ts","../src/lib/resolveRefs.ts","../src/lib/schema-table.ts"],"names":["obj"],"mappings":"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","file":"chunk-QEV4Q4TR.js","sourcesContent":["import {\n JsonObjectSchema,\n JsonSchema,\n JsonSchemaPrimitives,\n JsonSchemaTypeName,\n} from '../types/schema.types.js';\nimport { JsonArrayStore } from '../model/schema/json-array.store.js';\nimport { JsonBooleanStore } from '../model/schema/json-boolean.store.js';\nimport { JsonNumberStore } from '../model/schema/json-number.store.js';\nimport { JsonStringStore } from '../model/schema/json-string.store.js';\nimport { JsonObjectStore } from '../model/schema/json-object.store.js';\nimport {\n JsonSchemaStore,\n JsonSchemaStorePrimitives,\n} from '../model/schema/json-schema.store.js';\n\nexport type RefsType = Record<string, JsonSchema>;\n\nexport const createJsonSchemaStore = (\n schema: JsonSchema,\n refs: RefsType = {},\n): JsonSchemaStore => {\n if ('$ref' in schema) {\n const refSchema: JsonSchema | undefined = refs[schema.$ref];\n\n if (!refSchema) {\n throw new Error(`Not found schema for $ref=\"${schema.$ref}\"`);\n }\n\n const refStore = createJsonSchemaStore(refSchema, refs);\n saveSharedFields(refStore, schema);\n refStore.$ref = schema.$ref;\n return refStore;\n } else if (schema.type === JsonSchemaTypeName.Object) {\n const objectStore = createJsonObjectSchemaStore(schema, refs);\n saveSharedFields(objectStore, schema);\n\n return objectStore;\n } else if (schema.type === JsonSchemaTypeName.Array) {\n const itemsStore = createJsonSchemaStore(schema.items, refs);\n const arrayStore = new JsonArrayStore(itemsStore);\n saveSharedFields(arrayStore, schema);\n\n return arrayStore;\n } else {\n const primitivesStore = createPrimitiveStoreBySchema(schema);\n saveSharedFields(primitivesStore, schema);\n primitivesStore.readOnly = schema.readOnly;\n\n return primitivesStore;\n }\n};\n\nexport const createJsonObjectSchemaStore = (\n value: JsonObjectSchema,\n refs: RefsType,\n): JsonObjectStore => {\n const store = new JsonObjectStore();\n\n for (const requiredField of value.required) {\n if (!value.properties[requiredField]) {\n throw new Error(\n `Not found required field \"${requiredField}\" in \"properties\"`,\n );\n }\n }\n\n Object.entries(value.properties).forEach(([name, item]) => {\n store.addPropertyWithStore(name, createJsonSchemaStore(item, refs));\n });\n\n return store;\n};\n\nexport const createPrimitiveStoreBySchema = (\n schema: JsonSchemaPrimitives,\n): JsonSchemaStorePrimitives => {\n if (schema.type === JsonSchemaTypeName.String) {\n const stringStore = new JsonStringStore();\n stringStore.foreignKey = schema.foreignKey;\n stringStore.format = schema.format;\n stringStore.enum = schema.enum;\n stringStore.contentMediaType = schema.contentMediaType;\n stringStore.pattern = schema.pattern;\n stringStore['x-formula'] = schema['x-formula'];\n return stringStore;\n } else if (schema.type === JsonSchemaTypeName.Number) {\n const numberStore = new JsonNumberStore();\n numberStore['x-formula'] = schema['x-formula'];\n return numberStore;\n } else if (schema.type === JsonSchemaTypeName.Boolean) {\n const booleanStore = new JsonBooleanStore();\n booleanStore['x-formula'] = schema['x-formula'];\n return booleanStore;\n } else {\n throw new Error('this type is not allowed');\n }\n};\n\nexport const saveSharedFields = (\n store: JsonSchemaStore,\n schema: JsonSchema,\n) => {\n store.title = schema.title;\n store.description = schema.description;\n store.deprecated = schema.deprecated;\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\n\nexport const getJsonSchemaStoreByPath = (\n store: JsonSchemaStore,\n path: string,\n): JsonSchemaStore => {\n if (path === '') {\n return store;\n }\n\n if (path === '/') {\n throw new Error(\n 'invalid root path, need to use path=\"\" instead of path=\"/\"',\n );\n }\n\n const tokens = path.split('/');\n tokens.shift();\n\n let currentStore = store;\n\n let currentToken = tokens.shift();\n let currentPath = '';\n\n while (currentToken) {\n if (currentStore.type === JsonSchemaTypeName.Object) {\n if (currentToken !== 'properties') {\n throw new Error(\n `Expected \"${currentPath}/properties/*\" instead of ${currentPath}/${currentToken}/*`,\n );\n }\n\n currentPath = `${currentPath}/${currentToken}`;\n\n currentToken = tokens.shift();\n\n if (!currentToken) {\n throw new Error(`Expected property name after \"${currentPath}\"`);\n }\n\n const foundCurrentStore = currentStore.getProperty(currentToken);\n\n if (!foundCurrentStore) {\n throw new Error(`Not found \"${currentToken}\" in \"${currentPath}\"`);\n }\n\n currentStore = foundCurrentStore;\n currentPath = `${currentPath}/${currentToken}`;\n\n currentToken = tokens.shift();\n } else if (currentStore.type === JsonSchemaTypeName.Array) {\n if (currentToken !== 'items') {\n throw new Error(\n `Expected \"${currentPath}/items/*\" instead of ${currentPath}/${currentToken}/*`,\n );\n }\n\n currentPath = `${currentPath}/${currentToken}`;\n\n currentStore = currentStore.items;\n\n currentToken = tokens.shift();\n } else {\n throw new Error(`Unexpected \"${currentToken}\" in \"${currentPath}\"`);\n }\n }\n\n return currentStore;\n};\n","export const getParentForPath = (\n path: string,\n): { parentPath: string; field: string } => {\n if (path === '' || path === '/') {\n throw new Error('Invalid path');\n }\n\n const tokens = path.split('/');\n tokens.shift();\n\n let currentToken = tokens.shift();\n\n let parentPath = '';\n let field = '';\n\n while (currentToken) {\n if (currentToken === 'properties') {\n currentToken = tokens.shift();\n\n if (!currentToken) {\n throw new Error('Invalid path');\n }\n\n field = currentToken;\n\n currentToken = tokens.shift();\n\n if (currentToken) {\n parentPath = `${parentPath}/properties/${field}`;\n }\n } else if (currentToken === 'items') {\n field = currentToken;\n\n currentToken = tokens.shift();\n\n if (currentToken && !['items', 'properties'].includes(currentToken)) {\n throw new Error('Invalid path');\n } else if (currentToken) {\n parentPath = `${parentPath}/items`;\n }\n } else {\n throw new Error('Invalid path');\n }\n }\n\n return {\n parentPath: parentPath,\n field,\n };\n};\n","const maxLength = 64;\n\nexport const VALIDATE_JSON_FIELD_NAME_ERROR_MESSAGE = `It must contain between 1 and ${maxLength} characters, start with a letter or underscore (_), cannot start with two underscores (__), and can only include letters (a-z, A-Z), numbers (0-9), hyphens (-), and underscores (_).`;\n\nconst validPattern = /^(?!__)[a-zA-Z_][a-zA-Z0-9-_]*$/;\n\nexport const validateJsonFieldName = (id: string) => {\n const isInvalid =\n id.length < 1 || id.length > maxLength || !validPattern.test(id);\n\n return !isInvalid;\n};\n","import { JsonSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport {\n JsonPatchAdd,\n JsonPatchMove,\n JsonPatchRemove,\n JsonPatchReplace,\n} from '../types/json-patch.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\nimport { createJsonSchemaStore } from './createJsonSchemaStore.js';\nimport { getJsonSchemaStoreByPath } from './getJsonSchemaStoreByPath.js';\nimport { getParentForPath } from './getParentForPath.js';\nimport {\n VALIDATE_JSON_FIELD_NAME_ERROR_MESSAGE,\n validateJsonFieldName,\n} from './validateJsonFieldName.js';\n\nexport const applyReplacePatch = (\n store: JsonSchemaStore,\n patch: JsonPatchReplace,\n refs: Record<string, JsonSchema> = {},\n): JsonSchemaStore => {\n const patchStore = createJsonSchemaStore(patch.value, refs);\n const foundStore = getJsonSchemaStoreByPath(store, patch.path);\n\n const parent = foundStore.parent;\n\n if (!parent) {\n return patchStore;\n }\n\n if (parent.type === JsonSchemaTypeName.Object) {\n parent.migratePropertyWithStore(foundStore.name, patchStore);\n } else if (parent.type === JsonSchemaTypeName.Array) {\n parent.migrateItems(patchStore);\n } else {\n throw new Error('Invalid parent');\n }\n\n return store;\n};\n\nexport const applyRemovePatch = (\n rootStore: JsonSchemaStore,\n patch: JsonPatchRemove,\n): void => {\n const foundStore = getJsonSchemaStoreByPath(rootStore, patch.path);\n const parent = foundStore.parent;\n\n if (!parent) {\n throw new Error('Parent does not exist');\n }\n\n if (parent.type !== JsonSchemaTypeName.Object) {\n throw new Error('Cannot remove from non-object');\n }\n\n parent.removeProperty(foundStore.name);\n};\n\nexport const applyAddPatch = (\n rootStore: JsonSchemaStore,\n patch: JsonPatchAdd,\n refs: Record<string, JsonSchema> = {},\n): void => {\n const patchStore = createJsonSchemaStore(patch.value, refs);\n\n const { parentPath, field } = getParentForPath(patch.path);\n const foundParent = getJsonSchemaStoreByPath(rootStore, parentPath);\n\n if (!foundParent) {\n throw new Error('Parent does not exist');\n }\n\n if (foundParent.type !== JsonSchemaTypeName.Object) {\n throw new Error('Cannot add to non-object');\n }\n\n if (foundParent.getProperty(field)) {\n throw new Error(`Field \"${field}\" already exists in parent`);\n }\n\n foundParent.addPropertyWithStore(field, patchStore);\n};\n\nexport const applyMovePatch = (\n store: JsonSchemaStore,\n patch: JsonPatchMove,\n): void => {\n const { parentPath: fromParentPath, field: fromField } = getParentForPath(\n patch.from,\n );\n const { parentPath: toParentPath, field: toField } = getParentForPath(\n patch.path,\n );\n\n const foundFromParent = getJsonSchemaStoreByPath(store, fromParentPath);\n const foundToParent = getJsonSchemaStoreByPath(store, toParentPath);\n\n const isValidToField = validateJsonFieldName(toField);\n\n if (!isValidToField) {\n throw new Error(\n `Invalid name: ${toField}. ${VALIDATE_JSON_FIELD_NAME_ERROR_MESSAGE}`,\n );\n }\n\n if (!foundFromParent || !foundToParent) {\n throw new Error('Cannot move from or to non-existent parent');\n }\n\n if (foundFromParent.type !== JsonSchemaTypeName.Object) {\n throw new Error('Cannot move from non-object parent');\n }\n\n const foundFromField = getJsonSchemaStoreByPath(store, patch.from);\n\n const isMovedPropertyInSameParentPatch =\n foundFromParent === foundToParent &&\n foundFromParent.type === JsonSchemaTypeName.Object &&\n foundFromParent.getProperty(fromField);\n\n if (isMovedPropertyInSameParentPatch) {\n return foundFromParent.changeName(fromField, toField);\n }\n\n if (foundToParent.type === JsonSchemaTypeName.Object) {\n if (foundToParent.getProperty(toField)) {\n foundToParent.removeProperty(toField);\n }\n foundToParent.addPropertyWithStore(toField, foundFromField);\n foundFromParent.removeProperty(fromField);\n return;\n }\n\n if (foundToParent.type === JsonSchemaTypeName.Array) {\n foundFromParent.removeProperty(fromField);\n foundToParent.replaceItems(foundFromField);\n\n return;\n }\n throw new Error('Invalid type of \"to\" parent');\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\n\nexport const getDBJsonPathByJsonSchemaStore = (\n store: JsonSchemaStore,\n): string => {\n let node = store;\n\n let path = '';\n\n while (node.parent) {\n if (node.parent.type === JsonSchemaTypeName.Object) {\n path = `.${node.name}${path}`;\n } else if (node.parent.type === JsonSchemaTypeName.Array) {\n path = `[*]${path}`;\n }\n\n node = node.parent;\n }\n\n if (!path) {\n return '$';\n }\n\n return `$${path}`;\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\n\nexport const getPathByStore = (store: JsonSchemaStore): string => {\n let node = store;\n\n let path = '';\n\n while (node.parent) {\n if (node.parent.type === JsonSchemaTypeName.Object) {\n path = `/properties/${node.name}${path}`;\n } else if (node.parent.type === JsonSchemaTypeName.Array) {\n path = `/items${path}`;\n }\n\n node = node.parent;\n }\n\n if (!path) {\n return '/';\n }\n\n return `${path}`;\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\n\nexport const traverseStore = (\n store: JsonSchemaStore,\n callback: (node: JsonSchemaStore) => void,\n) => {\n callback(store);\n\n if (store.type === JsonSchemaTypeName.Object) {\n Object.values(store.properties).forEach((item) => {\n traverseStore(item, callback);\n });\n } else if (store.type === JsonSchemaTypeName.Array) {\n traverseStore(store.items, callback);\n }\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonPatch, JsonPatchReplace } from '../types/json-patch.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\nimport { getPathByStore } from './getPathByStore.js';\nimport { traverseStore } from './traverseStore.js';\n\nexport const getForeignKeyPatchesFromSchema = (\n store: JsonSchemaStore,\n options: { tableId: string; nextTableId: string },\n) => {\n const stores: JsonPatch[] = [];\n\n traverseStore(store, (item) => {\n if (\n item.type === JsonSchemaTypeName.String &&\n item.foreignKey === options.tableId\n ) {\n item.foreignKey = options.nextTableId;\n\n const patch: JsonPatchReplace = {\n op: 'replace',\n path: getPathByStore(item),\n value: item.getPlainSchema(),\n };\n\n stores.push(patch);\n }\n });\n\n return stores;\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\nimport { traverseStore } from './traverseStore.js';\n\nexport const getForeignKeysFromSchema = (store: JsonSchemaStore): string[] => {\n const foreignKeys = new Set<string>();\n\n traverseStore(store, (item) => {\n if (item.type === JsonSchemaTypeName.String && item.foreignKey) {\n foreignKeys.add(item.foreignKey);\n }\n });\n\n return [...foreignKeys].sort((a, b) => a.localeCompare(b));\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonValueStore } from '../model/value/json-value.store.js';\n\nexport const traverseValue = (\n store: JsonValueStore,\n callback: (node: JsonValueStore) => void,\n) => {\n callback(store);\n\n if (store.type === JsonSchemaTypeName.Object) {\n Object.values(store.value).forEach((item) => {\n traverseValue(item, callback);\n });\n } else if (store.type === JsonSchemaTypeName.Array) {\n store.value.forEach((itemValue) => {\n traverseValue(itemValue, callback);\n });\n }\n};\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonValueStore } from '../model/value/json-value.store.js';\nimport { traverseValue } from './traverseValue.js';\n\nexport type GetForeignKeysFromValueType = {\n tableId: string;\n rowIds: string[];\n};\n\nexport const getForeignKeysFromValue = (\n value: JsonValueStore,\n): GetForeignKeysFromValueType[] => {\n const foreignKeys = new Map<string, Set<string>>();\n\n traverseValue(value, (item) => {\n if (item.type === JsonSchemaTypeName.String && item.foreignKey) {\n let tableForeignKey = foreignKeys.get(item.foreignKey);\n\n if (!tableForeignKey) {\n tableForeignKey = new Set<string>();\n foreignKeys.set(item.foreignKey, tableForeignKey);\n }\n\n tableForeignKey.add(item.getPlainValue());\n }\n });\n\n return [...foreignKeys].map(([tableId, rowIds]) => ({\n tableId,\n rowIds: [...rowIds].sort((a, b) => a.localeCompare(b)),\n }));\n};\n","import { JsonSchema, JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\nimport { createJsonSchemaStore } from './createJsonSchemaStore.js';\nimport { traverseStore } from './traverseStore.js';\nimport { validateJsonFieldName } from './validateJsonFieldName.js';\n\nexport const getInvalidFieldNamesInSchema = (\n schema: JsonSchema,\n refs: Record<string, JsonSchema> = {},\n) => {\n const schemaStore = createJsonSchemaStore(schema, refs);\n\n const invalidFields: JsonSchemaStore[] = [];\n\n traverseStore(schemaStore, (item) => {\n if (item.parent?.type === JsonSchemaTypeName.Object) {\n if (!validateJsonFieldName(item.name)) {\n invalidFields.push(item);\n }\n }\n });\n\n return invalidFields;\n};\n","import { JsonArray, JsonObject, JsonValue } from '../types';\n\nfunction parsePathSegments(path: string): (string | number)[] {\n const segments: (string | number)[] = [];\n const regex = /([^.[\\]]+)|\\[(\\d+)]/g;\n let match: RegExpExecArray | null;\n\n while ((match = regex.exec(path))) {\n if (match[1] !== undefined) {\n segments.push(match[1]);\n } else if (match[2] !== undefined) {\n segments.push(Number(match[2]));\n }\n }\n\n return segments;\n}\n\n/**\n * Parse path string into segments\n *\n * @param path - Path string (e.g., \"title\", \"address.city\", \"tags[0]\", \"users[0].name\")\n * @returns Array of segments (strings and numbers)\n *\n * @example\n * parsePath(\"title\") // [\"title\"]\n * parsePath(\"address.city\") // [\"address\", \"city\"]\n * parsePath(\"tags[0]\") // [\"tags\", 0]\n * parsePath(\"users[0].name\") // [\"users\", 0, \"name\"]\n * parsePath(\"matrix[0][1]\") // [\"matrix\", 0, 1]\n */\nexport function parsePath(path: string): (string | number)[] {\n if (!path) {\n return [];\n }\n\n return parsePathSegments(path);\n}\n\n/**\n * Get value by path from plain JavaScript object\n *\n * @param obj - Object to navigate\n * @param path - Path string (e.g., \"address.city\", \"tags[0]\")\n * @returns Value at path, or undefined if path doesn't exist\n *\n * @example\n * const obj = { address: { city: \"Moscow\" }, tags: [\"a\", \"b\"] };\n * getValueByPath(obj, \"address.city\") // \"Moscow\"\n * getValueByPath(obj, \"tags[1]\") // \"b\"\n * getValueByPath(obj, \"nonexistent\") // undefined\n */\nexport function getValueByPath(\n obj: JsonValue | undefined,\n path: string,\n): JsonValue | undefined {\n if (!path) {\n return obj;\n }\n\n const segments = parsePath(path);\n let current: JsonValue | undefined = obj;\n\n for (const segment of segments) {\n if (current == null) {\n return undefined;\n }\n\n if (typeof segment === 'number') {\n if (!Array.isArray(current)) {\n return undefined;\n }\n current = current[segment];\n } else {\n if (typeof current !== 'object') {\n return undefined;\n }\n current = (current as JsonObject)[segment];\n }\n }\n\n return current;\n}\n\n/**\n * Set value by path in plain JavaScript object\n * Creates intermediate objects/arrays as needed\n *\n * @param obj - Object to modify\n * @param path - Path string (e.g., \"address.city\", \"tags[0]\")\n * @param value - Value to set\n *\n * @example\n * const obj = {};\n * setValueByPath(obj, \"address.city\", \"London\");\n * // obj is now { address: { city: \"London\" } }\n *\n * setValueByPath(obj, \"tags[0]\", \"first\");\n * // obj is now { address: { city: \"London\" }, tags: [\"first\"] }\n */\nexport function setValueByPath(\n obj: JsonValue,\n path: string,\n value: JsonValue,\n): void {\n if (!path) {\n throw new Error('Cannot set root value');\n }\n\n const segments = parsePath(path);\n let current: JsonValue | undefined = obj;\n\n for (let i = 0; i < segments.length - 1; i++) {\n const segment = segments[i] as string | number;\n const nextSegment = segments[i + 1];\n\n if (typeof segment === 'number') {\n if (!Array.isArray(current)) {\n throw new TypeError(\n `Cannot set array index on non-array at segment ${i}`,\n );\n }\n\n const arr: JsonArray = current;\n\n if (segment > arr.length) {\n throw new Error(\n `Cannot create sparse array: index ${segment} is out of bounds (array length: ${arr.length}) at segment ${i}`,\n );\n }\n\n if (arr[segment] == null) {\n arr[segment] = typeof nextSegment === 'number' ? [] : {};\n }\n\n current = arr[segment];\n } else if (typeof segment === 'string') {\n if (\n current == null ||\n typeof current !== 'object' ||\n Array.isArray(current)\n ) {\n throw new Error(`Cannot set property on non-object at segment ${i}`);\n }\n\n const obj: JsonObject = current;\n if (obj[segment] == null) {\n obj[segment] = typeof nextSegment === 'number' ? [] : {};\n }\n\n current = obj[segment];\n }\n }\n\n const lastSegment = segments[segments.length - 1] as string | number;\n\n if (typeof lastSegment === 'number') {\n if (!Array.isArray(current)) {\n throw new TypeError(\n `Cannot set array index on non-array at segment ${segments.length - 1}`,\n );\n }\n\n const arr: JsonArray = current;\n\n if (lastSegment > arr.length) {\n throw new Error(\n `Cannot create sparse array: index ${lastSegment} is out of bounds (array length: ${arr.length})`,\n );\n }\n\n arr[lastSegment] = value;\n } else if (typeof lastSegment === 'string') {\n if (\n current == null ||\n typeof current !== 'object' ||\n Array.isArray(current)\n ) {\n throw new Error(\n `Cannot set property on non-object at segment ${segments.length - 1}`,\n );\n }\n (current as JsonObject)[lastSegment] = value;\n }\n}\n\n/**\n * Check if path exists in object\n *\n * @param obj - Object to check\n * @param path - Path string (e.g., \"address.city\", \"tags[0]\")\n * @returns true if path exists and value is not undefined\n *\n * @example\n * const obj = { address: { city: \"Moscow\" } };\n * hasPath(obj, \"address.city\") // true\n * hasPath(obj, \"address.country\") // false\n */\nexport function hasPath(obj: JsonValue, path: string): boolean {\n const value = getValueByPath(obj, path);\n return value !== undefined;\n}\n\n/**\n * Deep equality comparison for plain JavaScript values\n * Handles objects, arrays, primitives, null, undefined\n *\n * @param a - First value\n * @param b - Second value\n * @returns true if values are deeply equal\n *\n * @example\n * deepEqual({ a: 1, b: 2 }, { a: 1, b: 2 }) // true\n * deepEqual([1, 2, 3], [1, 2, 3]) // true\n * deepEqual({ a: 1 }, { a: 2 }) // false\n * deepEqual(null, null) // true\n * deepEqual(undefined, undefined) // true\n */\nexport function deepEqual(a: unknown, b: unknown): boolean {\n if (a === b) {\n return true;\n }\n\n if (a === null && b === null) {\n return true;\n }\n\n if (a === undefined && b === undefined) {\n return true;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (typeof a !== 'object') {\n return false;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n const arrA = a as JsonArray;\n const arrB = b as JsonArray;\n if (arrA.length !== arrB.length) {\n return false;\n }\n for (let i = 0; i < arrA.length; i++) {\n const itemA = arrA[i];\n const itemB = arrB[i];\n\n if (itemA !== undefined && itemB !== undefined) {\n if (itemA === null && itemB === null) {\n continue;\n }\n if (!deepEqual(itemA, itemB)) {\n return false;\n }\n } else if (itemA !== itemB) {\n return false;\n }\n }\n return true;\n }\n\n if (Array.isArray(a) || Array.isArray(b)) {\n return false;\n }\n\n const objA = a as JsonObject;\n const objB = b as JsonObject;\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n for (const key of keysA) {\n if (!keysB.includes(key)) {\n return false;\n }\n const valA = objA[key];\n const valB = objB[key];\n\n if (valA !== undefined && valB !== undefined) {\n if (valA === null && valB === null) {\n continue;\n }\n if (!deepEqual(valA, valB)) {\n return false;\n }\n } else if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Convert simplified JSON path to JSON Schema path\n *\n * @param jsonPath - JSON path string (e.g., \"title\", \"address.city\", \"tags[0]\", \"users[0].name\")\n * @returns JSON Schema path string\n *\n * @example\n * convertJsonPathToSchemaPath(\"title\") // \"/properties/title\"\n * convertJsonPathToSchemaPath(\"address.city\") // \"/properties/address/properties/city\"\n * convertJsonPathToSchemaPath(\"tags[0]\") // \"/properties/tags/items\"\n * convertJsonPathToSchemaPath(\"users[0].name\") // \"/properties/users/items/properties/name\"\n * convertJsonPathToSchemaPath(\"\") // \"\"\n */\nexport function convertJsonPathToSchemaPath(jsonPath: string): string {\n if (jsonPath === '') {\n return '';\n }\n\n const segments = parsePathSegments(jsonPath);\n\n let schemaPath = '';\n for (const segment of segments) {\n if (typeof segment === 'number') {\n schemaPath += '/items';\n } else {\n schemaPath += `/properties/${segment}`;\n }\n }\n\n return schemaPath;\n}\n\nexport function convertSchemaPathToJsonPath(schemaPath: string): string {\n if (schemaPath === '') {\n return '';\n }\n\n const cleanPath = schemaPath.startsWith('/') ? schemaPath.slice(1) : schemaPath;\n\n if (cleanPath === '') {\n return '';\n }\n\n const segments = cleanPath.split('/');\n let result = '';\n\n let i = 0;\n while (i < segments.length) {\n const segment = segments[i];\n\n if (segment === 'properties') {\n i++;\n if (i < segments.length) {\n const propertyName = segments[i];\n if (propertyName) {\n if (result) {\n result += '.';\n }\n result += propertyName;\n }\n }\n } else if (segment === 'items') {\n result += '[*]';\n }\n\n i++;\n }\n\n return result;\n}\n","import { JsonArrayValueStore } from '../model/value/json-array-value.store.js';\nimport { JsonObjectValueStore } from '../model/value/json-object-value.store.js';\nimport { JsonValueStore } from '../model/value/json-value.store.js';\nimport { parsePath } from './json-path-utils.js';\n\nexport const getJsonValueStoreByPath = (\n root: JsonValueStore,\n path: string,\n): JsonValueStore => {\n if (!path) {\n return root;\n }\n\n const segments = parsePath(path);\n\n let current: JsonValueStore = root;\n\n for (const seg of segments) {\n if (current instanceof JsonObjectValueStore) {\n const next = current.value[String(seg)];\n if (!next) {\n throw new Error(`Path not found at segment \"${seg}\"`);\n }\n current = next;\n } else if (current instanceof JsonArrayValueStore) {\n if (typeof seg !== 'number') {\n throw new Error(`Invalid array index \"${seg}\"`);\n }\n const next = current.value[seg];\n if (!next) {\n throw new Error(`Path not found at segment \"${seg}\"`);\n }\n current = next;\n } else {\n throw new Error(`Cannot navigate into primitive at segment \"${seg}\"`);\n }\n }\n\n return current;\n};\n\n","import { JsonSchemaTypeName } from '../types/schema.types.js';\nimport { JsonValueStore } from '../model/value/json-value.store.js';\nimport { traverseValue } from './traverseValue.js';\n\nexport type ReplaceForeignKeyValueOptions = {\n valueStore: JsonValueStore;\n foreignKey: string;\n value: string;\n nextValue: string;\n};\n\nexport const replaceForeignKeyValue = (\n options: ReplaceForeignKeyValueOptions,\n) => {\n let wasUpdated = false;\n\n traverseValue(options.valueStore, (item) => {\n if (\n item.type === JsonSchemaTypeName.String &&\n item.foreignKey === options.foreignKey &&\n item.value === options.value\n ) {\n item.value = options.nextValue;\n wasUpdated = true;\n }\n });\n\n return wasUpdated;\n};\n","import { SystemSchemaIds } from '../consts/system-schema-ids.js';\nimport { createJsonSchemaStore } from './createJsonSchemaStore.js';\nimport {\n fileSchema,\n rowCreatedAtSchema,\n rowCreatedIdSchema,\n rowHashSchema,\n rowPublishedAtSchema,\n rowSchemaHashSchema,\n rowUpdatedAtSchema,\n rowVersionIdSchema,\n rowIdSchema,\n} from '../plugins/index.js';\nimport { JsonSchema } from '../types/schema.types.js';\n\nexport const pluginRefs: Readonly<Record<string, JsonSchema>> = {\n [SystemSchemaIds.RowId]: rowIdSchema,\n [SystemSchemaIds.RowVersionId]: rowVersionIdSchema,\n [SystemSchemaIds.RowCreatedId]: rowCreatedIdSchema,\n [SystemSchemaIds.RowCreatedAt]: rowCreatedAtSchema,\n [SystemSchemaIds.RowPublishedAt]: rowPublishedAtSchema,\n [SystemSchemaIds.RowUpdatedAt]: rowUpdatedAtSchema,\n [SystemSchemaIds.RowHash]: rowHashSchema,\n [SystemSchemaIds.RowSchemaHash]: rowSchemaHashSchema,\n [SystemSchemaIds.File]: fileSchema,\n};\n\nexport const resolveRefs = (schema: JsonSchema) => {\n const store = createJsonSchemaStore(schema, pluginRefs);\n return store.getPlainSchema({ skip$Ref: true });\n};\n","import { JsonSchema } from '../types/schema.types.js';\nimport { JsonValue } from '../types/json.types.js';\nimport { JsonPatch } from '../types/json-patch.types.js';\nimport { JsonSchemaStore } from '../model/schema/json-schema.store.js';\nimport { JsonValueStore } from '../model/value/json-value.store.js';\nimport { getTransformation } from '../model/value/value-transformation.js';\nimport { createJsonSchemaStore } from './createJsonSchemaStore.js';\nimport { createJsonValueStore } from './createJsonValueStore.js';\nimport {\n applyAddPatch,\n applyMovePatch,\n applyRemovePatch,\n applyReplacePatch,\n} from './applyPatches.js';\n\nexport class SchemaTable {\n private readonly rows = new Map<string, JsonValueStore>();\n private store: JsonSchemaStore;\n\n constructor(\n schema: JsonSchema,\n private readonly refs: Record<string, JsonSchema> = {},\n ) {\n this.store = createJsonSchemaStore(schema, refs);\n }\n\n public applyPatches(patches: JsonPatch[]): void {\n patches.forEach((patch) => {\n switch (patch.op) {\n case 'replace': {\n const nextStore = applyReplacePatch(this.store, patch, this.refs);\n if (nextStore !== this.store) {\n this.migrateRows(nextStore);\n }\n break;\n }\n case 'remove': {\n applyRemovePatch(this.store, patch);\n break;\n }\n case 'add': {\n applyAddPatch(this.store, patch, this.refs);\n break;\n }\n case 'move': {\n applyMovePatch(this.store, patch);\n break;\n }\n default:\n throw new Error(`Unsupported patch operation`);\n }\n });\n }\n\n public getSchema(): JsonSchema {\n return this.store.getPlainSchema();\n }\n\n public addRow(rowId: string, data: JsonValue) {\n const row = createJsonValueStore(this.store, rowId, data);\n\n this.rows.set(rowId, row);\n }\n\n public getRow(id: string): JsonValue {\n const row = this.rows.get(id);\n\n if (!row) {\n throw new Error('Invalid id');\n }\n\n return row.getPlainValue();\n }\n\n public getRows(): { id: string; data: JsonValue }[] {\n return [...this.rows].map(([id, data]) => ({\n id,\n data: data.getPlainValue(),\n }));\n }\n\n private migrateRows(nextStore: JsonSchemaStore): void {\n const transformation = getTransformation(this.store, nextStore);\n\n if (transformation) {\n for (const [rowId, row] of this.rows) {\n const rawNextValue = transformation(\n row.getPlainValue(),\n nextStore.default,\n ) as JsonValue;\n\n const nextRow = createJsonValueStore(nextStore, rowId, rawNextValue);\n this.rows.set(rowId, nextRow);\n }\n }\n\n this.store = nextStore;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/extract-schema-formulas.ts","../src/lib/validate-schema-formulas.ts","../src/lib/formula.ts"],"names":["getParentPath"],"mappings":"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","file":"chunk-R3MS2N4A.js","sourcesContent":["interface XFormulaInput {\n version: number;\n expression: string;\n}\n\ninterface SchemaProperty {\n type?: string;\n 'x-formula'?: XFormulaInput;\n properties?: Record<string, SchemaProperty>;\n items?: SchemaProperty;\n [key: string]: unknown;\n}\n\ninterface JsonSchemaInput {\n type?: string;\n properties?: Record<string, SchemaProperty>;\n items?: SchemaProperty;\n [key: string]: unknown;\n}\n\nexport interface ExtractedFormula {\n fieldName: string;\n expression: string;\n fieldType: string;\n}\n\nexport function extractSchemaFormulas(\n schema: JsonSchemaInput,\n): ExtractedFormula[] {\n const formulas: ExtractedFormula[] = [];\n extractFormulasRecursive(schema, '', formulas);\n return formulas;\n}\n\nfunction extractFormulasRecursive(\n schema: SchemaProperty | JsonSchemaInput,\n pathPrefix: string,\n formulas: ExtractedFormula[],\n): void {\n if (schema.type === 'array' && schema.items) {\n extractFormulasRecursive(schema.items, `${pathPrefix}[]`, formulas);\n return;\n }\n\n const properties = schema.properties ?? {};\n\n for (const [fieldName, fieldSchema] of Object.entries(properties)) {\n const fullPath = pathPrefix ? `${pathPrefix}.${fieldName}` : fieldName;\n\n const xFormula = fieldSchema['x-formula'];\n if (xFormula) {\n formulas.push({\n fieldName: fullPath,\n expression: xFormula.expression,\n fieldType: fieldSchema.type ?? 'string',\n });\n }\n\n if (fieldSchema.type === 'object' && fieldSchema.properties) {\n extractFormulasRecursive(fieldSchema, fullPath, formulas);\n }\n\n if (fieldSchema.type === 'array' && fieldSchema.items) {\n extractFormulasRecursive(fieldSchema.items, `${fullPath}[]`, formulas);\n }\n }\n}\n","import {\n parseExpression,\n validateFormulaSyntax,\n buildDependencyGraph,\n detectCircularDependencies,\n inferFormulaType,\n type FieldTypes,\n type InferredType,\n} from '@revisium/formula';\nimport { extractSchemaFormulas } from './extract-schema-formulas.js';\n\ninterface XFormula {\n version: number;\n expression: string;\n}\n\ninterface SchemaProperty {\n type?: string;\n properties?: Record<string, SchemaProperty>;\n items?: SchemaProperty;\n 'x-formula'?: XFormula;\n [key: string]: unknown;\n}\n\ninterface JsonSchemaInput {\n type?: string;\n properties?: Record<string, SchemaProperty>;\n items?: SchemaProperty;\n [key: string]: unknown;\n}\n\nexport interface FormulaValidationError {\n field: string;\n error: string;\n position?: number;\n}\n\nexport interface SchemaValidationResult {\n isValid: boolean;\n errors: FormulaValidationError[];\n}\n\nexport function validateSchemaFormulas(\n schema: JsonSchemaInput,\n): SchemaValidationResult {\n const errors: FormulaValidationError[] = [];\n const formulas = extractSchemaFormulas(schema);\n\n for (const formula of formulas) {\n const error = validateFormulaAgainstSchema(\n formula.expression,\n formula.fieldName,\n schema,\n );\n if (error) {\n errors.push(error);\n }\n }\n\n if (errors.length > 0) {\n return { isValid: false, errors };\n }\n\n const dependencies: Record<string, string[]> = {};\n for (const formula of formulas) {\n const parseResult = parseExpression(formula.expression);\n const parentPath = getParentPath(formula.fieldName);\n const prefix = parentPath ? `${parentPath}.` : '';\n\n dependencies[formula.fieldName] = parseResult.dependencies.map((dep) => {\n if (dep.startsWith('/')) {\n return extractFieldRoot(dep.slice(1));\n }\n if (dep.startsWith('../')) {\n return resolveRelativePathForDependency(dep, parentPath);\n }\n const rootField = extractFieldRoot(dep);\n return `${prefix}${rootField}`;\n });\n }\n\n const graph = buildDependencyGraph(dependencies);\n const circularCheck = detectCircularDependencies(graph);\n\n const cycle = circularCheck.cycle;\n if (circularCheck.hasCircular && cycle && cycle.length > 0) {\n const firstField = cycle[0];\n if (firstField) {\n errors.push({\n field: firstField,\n error: `Circular dependency: ${cycle.join(' → ')}`,\n });\n return { isValid: false, errors };\n }\n }\n\n return { isValid: true, errors: [] };\n}\n\nexport function validateFormulaAgainstSchema(\n expression: string,\n fieldName: string,\n schema: JsonSchemaInput,\n): FormulaValidationError | null {\n return validateFormulaInContext(expression, fieldName, schema);\n}\n\nfunction validateFormulaInContext(\n expression: string,\n fieldPath: string,\n rootSchema: JsonSchemaInput,\n): FormulaValidationError | null {\n const syntaxResult = validateFormulaSyntax(expression);\n if (!syntaxResult.isValid) {\n return {\n field: fieldPath,\n error: syntaxResult.error,\n position: syntaxResult.position,\n };\n }\n\n const parentPath = getParentPath(fieldPath);\n const localFieldName = getFieldName(fieldPath);\n const contextSchema = resolveSubSchema(rootSchema, parentPath);\n\n if (!contextSchema) {\n return {\n field: fieldPath,\n error: `Cannot resolve schema context for path '${parentPath}'`,\n };\n }\n\n const parseResult = parseExpression(expression);\n const localSchemaFields = getSchemaFields(contextSchema);\n const rootSchemaFields = getSchemaFields(rootSchema);\n\n for (const dep of parseResult.dependencies) {\n if (dep.startsWith('/')) {\n const rootField = extractFieldRoot(dep.slice(1));\n if (!rootSchemaFields.has(rootField)) {\n return {\n field: fieldPath,\n error: `Unknown root field '${rootField}' in formula`,\n };\n }\n } else if (dep.startsWith('../')) {\n const validationResult = validateRelativePath(\n dep,\n parentPath,\n rootSchema,\n fieldPath,\n );\n if (validationResult) {\n return validationResult;\n }\n } else {\n const rootField = extractFieldRoot(dep);\n if (!localSchemaFields.has(rootField)) {\n return {\n field: fieldPath,\n error: `Unknown field '${rootField}' in formula`,\n };\n }\n }\n }\n\n if (\n parseResult.dependencies.some((d) => extractFieldRoot(d) === localFieldName)\n ) {\n return {\n field: fieldPath,\n error: `Formula cannot reference itself`,\n };\n }\n\n const isInsideArray = fieldPath.includes('[');\n if (isInsideArray) {\n const computedFields = getComputedFieldsInContext(contextSchema);\n const arrayRefError = validateArrayReferences(\n expression,\n fieldPath,\n computedFields,\n );\n if (arrayRefError) {\n return arrayRefError;\n }\n }\n\n const fieldSchema = contextSchema.properties?.[localFieldName];\n const expectedType = schemaTypeToInferred(fieldSchema?.type);\n const fieldTypes = getSchemaFieldTypes(contextSchema);\n const inferredType = inferFormulaType(expression, fieldTypes);\n\n if (!isTypeCompatible(inferredType, expectedType)) {\n return {\n field: fieldPath,\n error: `Type mismatch: formula returns '${inferredType}' but field expects '${expectedType}'`,\n };\n }\n\n return null;\n}\n\nfunction resolveSubSchema(\n schema: JsonSchemaInput,\n fieldPath: string,\n): SchemaProperty | null {\n if (!fieldPath) {\n return schema;\n }\n\n const segments = parsePathSegmentsForSchema(fieldPath);\n let current: SchemaProperty | JsonSchemaInput = schema;\n\n for (const segment of segments) {\n if (segment === '[]') {\n if (current.type === 'array' && current.items) {\n current = current.items;\n } else {\n return null;\n }\n } else if (current.properties?.[segment]) {\n current = current.properties[segment];\n } else {\n return null;\n }\n }\n\n return current;\n}\n\nfunction parsePathSegmentsForSchema(path: string): string[] {\n const segments: string[] = [];\n let current = '';\n let inBracket = false;\n\n for (const char of path) {\n if (char === '[') {\n if (current) {\n segments.push(current);\n current = '';\n }\n inBracket = true;\n } else if (char === ']') {\n inBracket = false;\n segments.push('[]');\n } else if (char === '.' && !inBracket) {\n if (current) {\n segments.push(current);\n current = '';\n }\n } else if (!inBracket) {\n current += char;\n }\n }\n\n if (current) {\n segments.push(current);\n }\n\n return segments;\n}\n\nfunction parsePathSegments(path: string): string[] {\n const segments: string[] = [];\n let current = '';\n let inBracket = false;\n\n for (const char of path) {\n if (char === '[') {\n if (current) {\n segments.push(current);\n current = '';\n }\n inBracket = true;\n } else if (char === ']') {\n inBracket = false;\n } else if (char === '.' && !inBracket) {\n if (current) {\n segments.push(current);\n current = '';\n }\n } else if (!inBracket) {\n current += char;\n }\n }\n\n if (current) {\n segments.push(current);\n }\n\n return segments;\n}\n\nfunction getParentPath(fieldPath: string): string {\n const lastDotIndex = fieldPath.lastIndexOf('.');\n const lastBracketIndex = fieldPath.lastIndexOf('[');\n const splitIndex = Math.max(lastDotIndex, lastBracketIndex);\n\n if (splitIndex <= 0) {\n return '';\n }\n\n return fieldPath.substring(0, splitIndex);\n}\n\nfunction getFieldName(fieldPath: string): string {\n const lastDotIndex = fieldPath.lastIndexOf('.');\n const lastBracketIndex = fieldPath.lastIndexOf(']');\n const splitIndex = Math.max(lastDotIndex, lastBracketIndex);\n\n if (splitIndex === -1) {\n return fieldPath;\n }\n\n return fieldPath.substring(splitIndex + 1);\n}\n\nfunction getSchemaFields(schema: SchemaProperty | JsonSchemaInput): Set<string> {\n const fields = new Set<string>();\n const properties = schema.properties ?? {};\n\n for (const fieldName of Object.keys(properties)) {\n fields.add(fieldName);\n }\n\n return fields;\n}\n\nfunction getSchemaFieldTypes(schema: SchemaProperty | JsonSchemaInput): FieldTypes {\n const fieldTypes: FieldTypes = {};\n const properties = schema.properties ?? {};\n\n for (const [fieldName, fieldSchema] of Object.entries(properties)) {\n const schemaType = fieldSchema.type;\n if (schemaType === 'integer') {\n fieldTypes[fieldName] = 'number';\n } else if (\n schemaType === 'number' ||\n schemaType === 'string' ||\n schemaType === 'boolean' ||\n schemaType === 'object' ||\n schemaType === 'array'\n ) {\n fieldTypes[fieldName] = schemaType;\n }\n }\n\n return fieldTypes;\n}\n\nfunction schemaTypeToInferred(\n schemaType: string | undefined,\n): InferredType | null {\n if (schemaType === 'number' || schemaType === 'integer') return 'number';\n if (schemaType === 'string') return 'string';\n if (schemaType === 'boolean') return 'boolean';\n return null;\n}\n\nfunction isTypeCompatible(\n inferredType: InferredType,\n expectedType: InferredType | null,\n): boolean {\n if (expectedType === null) return true;\n if (inferredType === 'unknown') return true;\n return inferredType === expectedType;\n}\n\nfunction extractFieldRoot(dependency: string): string {\n const root = dependency.split('.')[0]?.split('[')[0];\n return root || dependency;\n}\n\nfunction countParentLevels(path: string): number {\n let count = 0;\n let remaining = path;\n while (remaining.startsWith('../')) {\n count++;\n remaining = remaining.slice(3);\n }\n return count;\n}\n\nfunction resolveRelativePathForDependency(\n relativePath: string,\n currentPath: string,\n): string {\n const parentLevels = countParentLevels(relativePath);\n const fieldAfterParents = relativePath.replace(/^(\\.\\.\\/)+/, '');\n const targetField = extractFieldRoot(fieldAfterParents);\n\n if (!currentPath) {\n return targetField;\n }\n\n const pathSegments = parsePathSegments(currentPath);\n const targetLevel = pathSegments.length - parentLevels;\n\n if (targetLevel <= 0) {\n return targetField;\n }\n\n const basePath = pathSegments.slice(0, targetLevel).join('.');\n return basePath ? `${basePath}.${targetField}` : targetField;\n}\n\nfunction validateRelativePath(\n relativePath: string,\n currentPath: string,\n rootSchema: JsonSchemaInput,\n fieldPath: string,\n): FormulaValidationError | null {\n const parentLevels = countParentLevels(relativePath);\n const fieldAfterParents = relativePath.replace(/^(\\.\\.\\/)+/, '');\n const targetField = extractFieldRoot(fieldAfterParents);\n\n const pathSegments = parsePathSegments(currentPath);\n const targetLevel = pathSegments.length - parentLevels;\n\n if (targetLevel <= 0) {\n const rootFields = getSchemaFields(rootSchema);\n if (!rootFields.has(targetField)) {\n return {\n field: fieldPath,\n error: `Unknown root field '${targetField}' in formula`,\n };\n }\n return null;\n }\n\n const targetPath = pathSegments.slice(0, targetLevel).join('.');\n const targetSchema = resolveSubSchema(rootSchema, targetPath);\n\n if (!targetSchema) {\n return {\n field: fieldPath,\n error: `Cannot resolve schema for relative path '${relativePath}'`,\n };\n }\n\n const targetFields = getSchemaFields(targetSchema);\n if (!targetFields.has(targetField)) {\n return {\n field: fieldPath,\n error: `Unknown field '${targetField}' in formula`,\n };\n }\n\n return null;\n}\n\nfunction getComputedFieldsInContext(\n schema: SchemaProperty | JsonSchemaInput,\n): Set<string> {\n const computedFields = new Set<string>();\n const properties = schema.properties ?? {};\n\n for (const [fieldName, fieldSchema] of Object.entries(properties)) {\n if (fieldSchema['x-formula']) {\n computedFields.add(fieldName);\n }\n }\n\n return computedFields;\n}\n\nfunction validateArrayReferences(\n expression: string,\n fieldPath: string,\n computedFields: Set<string>,\n): FormulaValidationError | null {\n const atNextMatches = expression.matchAll(/@next\\.(\\w+)/g);\n for (const match of atNextMatches) {\n const fieldName = match[1];\n if (fieldName && computedFields.has(fieldName)) {\n return {\n field: fieldPath,\n error: `Cannot reference computed field '${fieldName}' via @next. Use @prev instead for cross-element computed field references.`,\n };\n }\n }\n\n const absoluteIndexMatches = expression.matchAll(/\\/[\\w[\\]]+\\[\\d+\\]\\.(\\w+)/g);\n for (const match of absoluteIndexMatches) {\n const fieldName = match[1];\n if (fieldName && computedFields.has(fieldName)) {\n return {\n field: fieldPath,\n error: `Absolute index reference to computed field '${fieldName}' may cause forward reference issues. Consider using @prev pattern instead.`,\n };\n }\n }\n\n return null;\n}\n","import {\n parseFormula,\n evaluateWithContext,\n type ArrayContext,\n type ArrayLevelContext,\n} from '@revisium/formula';\nimport { type JsonSchema } from '../types/index.js';\n\nexport { formulaSpec } from '@revisium/formula/spec';\nexport {\n extractSchemaFormulas,\n type ExtractedFormula,\n} from './extract-schema-formulas.js';\nexport {\n validateSchemaFormulas,\n validateFormulaAgainstSchema,\n type SchemaValidationResult,\n type FormulaValidationError,\n} from './validate-schema-formulas.js';\n\ninterface ArrayLevelInfo {\n index: number;\n length: number;\n arrayPath: string;\n}\n\nexport interface FormulaNode {\n path: string;\n expression: string;\n fieldType: 'number' | 'string' | 'boolean';\n currentPath: string;\n dependencies: string[];\n arrayLevels: ArrayLevelInfo[];\n}\n\nexport interface FormulaError {\n field: string;\n expression: string;\n error: string;\n defaultUsed: boolean;\n}\n\nexport interface EvaluateFormulasResult {\n values: Record<string, unknown>;\n errors: FormulaError[];\n}\n\nexport interface EvaluateFormulasOptions {\n useDefaults?: boolean;\n defaults?: Record<string, unknown>;\n}\n\ninterface SchemaNode {\n type?: string;\n properties?: Record<string, SchemaNode>;\n items?: SchemaNode;\n 'x-formula'?: { version: number; expression: string };\n}\n\nconst FORMULA_TYPES = new Set(['number', 'string', 'boolean']);\n\ninterface TraversalContext {\n arrayLevels: ArrayLevelInfo[];\n}\n\nexport function collectFormulaNodes(\n schema: JsonSchema,\n data: Record<string, unknown>,\n): FormulaNode[] {\n const nodes: FormulaNode[] = [];\n traverseAndCollect(schema as SchemaNode, data, '', nodes, { arrayLevels: [] });\n return nodes;\n}\n\nfunction traverseAndCollect(\n schema: SchemaNode,\n data: unknown,\n currentPath: string,\n nodes: FormulaNode[],\n ctx: TraversalContext,\n): void {\n if (schema.type === 'object' && schema.properties && typeof data === 'object' && data !== null) {\n const record = data as Record<string, unknown>;\n\n for (const [fieldName, fieldSchema] of Object.entries(schema.properties)) {\n const fieldPath = currentPath ? `${currentPath}.${fieldName}` : fieldName;\n const fieldValue = record[fieldName];\n\n if (fieldSchema['x-formula'] && FORMULA_TYPES.has(fieldSchema.type ?? '')) {\n const expression = fieldSchema['x-formula'].expression;\n const parentPath = getParentPath(fieldPath);\n\n nodes.push({\n path: fieldPath,\n expression,\n fieldType: fieldSchema.type as 'number' | 'string' | 'boolean',\n currentPath: parentPath,\n dependencies: parseDependencies(expression),\n arrayLevels: [...ctx.arrayLevels],\n });\n }\n\n traverseAndCollect(fieldSchema, fieldValue, fieldPath, nodes, ctx);\n }\n }\n\n if (schema.type === 'array' && schema.items && Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n const itemPath = `${currentPath}[${i}]`;\n const arrayLevel: ArrayLevelInfo = {\n index: i,\n length: data.length,\n arrayPath: currentPath,\n };\n const newCtx: TraversalContext = {\n arrayLevels: [arrayLevel, ...ctx.arrayLevels],\n };\n traverseAndCollect(schema.items, data[i], itemPath, nodes, newCtx);\n }\n }\n}\n\nfunction parseDependencies(expression: string): string[] {\n try {\n return parseFormula(expression).dependencies;\n } catch {\n return [];\n }\n}\n\nfunction getParentPath(fieldPath: string): string {\n const lastDotIndex = fieldPath.lastIndexOf('.');\n if (lastDotIndex === -1) {\n return '';\n }\n return fieldPath.substring(0, lastDotIndex);\n}\n\nexport function evaluateFormulas(\n schema: JsonSchema,\n data: Record<string, unknown>,\n options: EvaluateFormulasOptions = {},\n): EvaluateFormulasResult {\n const nodes = collectFormulaNodes(schema, data);\n\n if (nodes.length === 0) {\n return { values: {}, errors: [] };\n }\n\n const sortedNodes = orderByDependencies(nodes);\n const values: Record<string, unknown> = {};\n const errors: FormulaError[] = [];\n const failedPaths = new Set<string>();\n\n for (const node of sortedNodes) {\n const hasDependencyFailure = hasFailedDependency(node, failedPaths);\n\n if (hasDependencyFailure) {\n failedPaths.add(node.path);\n handleError(node, 'Dependency formula failed', data, values, errors, options);\n continue;\n }\n\n const result = evaluateNode(node, data);\n\n if (!result.success) {\n failedPaths.add(node.path);\n handleError(node, result.error, data, values, errors, options);\n continue;\n }\n\n setValueByPath(data, node.path, result.value);\n values[node.path] = result.value;\n }\n\n return { values, errors };\n}\n\nfunction orderByDependencies(nodes: FormulaNode[]): FormulaNode[] {\n if (nodes.length <= 1) {\n return nodes;\n }\n\n const formulaNodes = new Set(nodes.map((n) => n.path));\n const visited = new Set<string>();\n const order: FormulaNode[] = [];\n\n const nodeByPath = new Map(nodes.map((n) => [n.path, n]));\n\n const visit = (node: FormulaNode, stack: Set<string>): void => {\n if (visited.has(node.path)) {\n return;\n }\n\n if (stack.has(node.path)) {\n throw new Error(`Cyclic dependency detected in formulas: ${node.path}`);\n }\n\n stack.add(node.path);\n\n for (const dep of node.dependencies) {\n if (formulaNodes.has(dep)) {\n const depNode = nodeByPath.get(dep);\n if (depNode) {\n visit(depNode, stack);\n }\n }\n }\n\n stack.delete(node.path);\n visited.add(node.path);\n order.push(node);\n };\n\n for (const node of nodes) {\n visit(node, new Set());\n }\n\n return order;\n}\n\nfunction hasFailedDependency(node: FormulaNode, failedPaths: Set<string>): boolean {\n return node.dependencies.some((dep) => {\n for (const failedPath of failedPaths) {\n if (failedPath === dep || failedPath.endsWith(`.${dep}`)) {\n return true;\n }\n }\n return false;\n });\n}\n\nfunction buildArrayContext(\n node: FormulaNode,\n data: Record<string, unknown>,\n): ArrayContext | undefined {\n if (node.arrayLevels.length === 0) {\n return undefined;\n }\n\n const levels: ArrayLevelContext[] = node.arrayLevels.map((level) => {\n const array = getValueByPath(data, level.arrayPath) as unknown[] | undefined;\n const { index, length } = level;\n\n let prev: unknown = null;\n let next: unknown = null;\n\n if (array) {\n if (index > 0) {\n prev = array[index - 1] ?? null;\n }\n if (index < length - 1) {\n next = array[index + 1] ?? null;\n }\n }\n\n return { index, length, prev, next };\n });\n\n return { levels };\n}\n\nfunction evaluateNode(\n node: FormulaNode,\n data: Record<string, unknown>,\n): { success: true; value: unknown } | { success: false; error: string } {\n try {\n const itemData = node.currentPath\n ? getValueByPath(data, node.currentPath) as Record<string, unknown> | undefined\n : undefined;\n\n const arrayContext = buildArrayContext(node, data);\n\n const result = evaluateWithContext(node.expression, {\n rootData: data,\n ...(itemData && { itemData, currentPath: node.currentPath }),\n arrayContext,\n });\n\n if (result === undefined) {\n return { success: false, error: 'Formula returned undefined' };\n }\n\n return { success: true, value: result };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n}\n\nfunction handleError(\n node: FormulaNode,\n errorMessage: string,\n data: Record<string, unknown>,\n values: Record<string, unknown>,\n errors: FormulaError[],\n options: EvaluateFormulasOptions,\n): void {\n const defaultUsed = options.useDefaults ?? false;\n\n if (defaultUsed) {\n const defaultValue = getDefaultValue(node, options.defaults);\n setValueByPath(data, node.path, defaultValue);\n values[node.path] = defaultValue;\n }\n\n errors.push({\n field: node.path,\n expression: node.expression,\n error: errorMessage,\n defaultUsed,\n });\n}\n\nfunction getDefaultValue(\n node: FormulaNode,\n defaults?: Record<string, unknown>,\n): unknown {\n if (defaults && node.path in defaults) {\n return defaults[node.path];\n }\n\n switch (node.fieldType) {\n case 'number':\n return 0;\n case 'string':\n return '';\n case 'boolean':\n return false;\n }\n}\n\nfunction getValueByPath(\n obj: Record<string, unknown>,\n path: string,\n): unknown {\n const segments = parsePath(path);\n let current: unknown = obj;\n\n for (const segment of segments) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n if (segment.type === 'field') {\n current = (current as Record<string, unknown>)[segment.name];\n } else {\n if (!Array.isArray(current)) {\n return undefined;\n }\n current = current[segment.index];\n }\n }\n\n return current;\n}\n\ntype PathSegment = { type: 'field'; name: string } | { type: 'index'; index: number };\n\nfunction parsePath(path: string): PathSegment[] {\n const segments: PathSegment[] = [];\n let current = '';\n let position = 0;\n\n while (position < path.length) {\n const char = path[position];\n\n if (char === '.') {\n if (current) {\n segments.push({ type: 'field', name: current });\n current = '';\n }\n position++;\n } else if (char === '[') {\n if (current) {\n segments.push({ type: 'field', name: current });\n current = '';\n }\n const endBracket = path.indexOf(']', position);\n if (endBracket === -1) {\n position++;\n } else {\n const indexStr = path.slice(position + 1, endBracket);\n segments.push({ type: 'index', index: Number.parseInt(indexStr, 10) });\n position = endBracket + 1;\n }\n } else {\n current += char;\n position++;\n }\n }\n\n if (current) {\n segments.push({ type: 'field', name: current });\n }\n\n return segments;\n}\n\nfunction isSafeKey(key: string): boolean {\n return key !== '__proto__';\n}\n\nfunction setValueByPath(\n obj: Record<string, unknown>,\n path: string,\n value: unknown,\n): void {\n const segments = parsePath(path);\n let current: unknown = obj;\n\n for (let i = 0; i < segments.length - 1; i++) {\n const segment = segments[i]!;\n\n if (segment.type === 'field') {\n if (!isSafeKey(segment.name)) {\n return;\n }\n const record = current as Record<string, unknown>;\n if (!(segment.name in record)) {\n record[segment.name] = {};\n }\n current = record[segment.name];\n } else {\n const arr = current as unknown[];\n if (!arr[segment.index]) {\n arr[segment.index] = {};\n }\n current = arr[segment.index];\n }\n }\n\n const lastSegment = segments.at(-1);\n if (!lastSegment) {\n return;\n }\n\n if (lastSegment.type === 'field') {\n if (!isSafeKey(lastSegment.name)) {\n return;\n }\n (current as Record<string, unknown>)[lastSegment.name] = value;\n } else {\n (current as unknown[])[lastSegment.index] = value;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mocks/schema.mocks.ts"],"names":[],"mappings":"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","file":"chunk-R4CFU33U.js","sourcesContent":["import {\n JsonArraySchema,\n JsonBooleanSchema,\n JsonNumberSchema,\n JsonObjectSchema,\n JsonRefSchema,\n JsonSchema,\n JsonSchemaTypeName,\n JsonStringSchema,\n XFormula,\n} from '../types/schema.types.js';\nimport {\n JsonPatchAdd,\n JsonPatchMove,\n JsonPatchRemove,\n JsonPatchReplace,\n} from '../types/json-patch.types.js';\n\nexport const getReplacePatch = ({\n path,\n value,\n}: {\n path: string;\n value: JsonSchema;\n}): JsonPatchReplace => ({\n op: 'replace',\n path,\n value,\n});\n\nexport const getRemovePatch = ({\n path,\n}: {\n path: string;\n}): JsonPatchRemove => ({\n op: 'remove',\n path,\n});\n\nexport const getAddPatch = ({\n path,\n value,\n}: {\n path: string;\n value: JsonSchema;\n}): JsonPatchAdd => ({\n op: 'add',\n path,\n value,\n});\n\nexport const getMovePatch = ({\n from,\n path,\n}: {\n from: string;\n path: string;\n}): JsonPatchMove => ({\n op: 'move',\n from,\n path,\n});\n\ntype StringSchemaOptions = Partial<\n Omit<JsonStringSchema, 'type' | 'x-formula'> & { formula: string }\n>;\n\ntype NumberSchemaOptions = Partial<\n Omit<JsonNumberSchema, 'type' | 'x-formula'> & { formula: string }\n>;\n\ntype BooleanSchemaOptions = Partial<\n Omit<JsonBooleanSchema, 'type' | 'x-formula'> & { formula: string }\n>;\n\ntype ObjectSchemaOptions = Partial<Omit<JsonObjectSchema, 'type' | 'properties' | 'required'>>;\n\ntype ArraySchemaOptions = Partial<Omit<JsonArraySchema, 'type' | 'items'>>;\n\ntype RefSchemaOptions = Partial<Omit<JsonRefSchema, '$ref'>>;\n\nconst buildFormula = (expression: string): XFormula => ({\n version: 1,\n expression,\n});\n\nexport const getStringSchema = (params: StringSchemaOptions = {}): JsonStringSchema => {\n const { formula, ...rest } = params;\n return {\n type: JsonSchemaTypeName.String,\n ...rest,\n default: rest.default ?? '',\n ...(formula && { 'x-formula': buildFormula(formula) }),\n };\n};\n\nexport const getNumberSchema = (params: NumberSchemaOptions = {}): JsonNumberSchema => {\n const { formula, ...rest } = params;\n return {\n type: JsonSchemaTypeName.Number,\n ...rest,\n default: rest.default ?? 0,\n ...(formula && { 'x-formula': buildFormula(formula) }),\n };\n};\n\nexport const getBooleanSchema = (params: BooleanSchemaOptions = {}): JsonBooleanSchema => {\n const { formula, ...rest } = params;\n return {\n type: JsonSchemaTypeName.Boolean,\n ...rest,\n default: rest.default ?? false,\n ...(formula && { 'x-formula': buildFormula(formula) }),\n };\n};\n\nexport const getObjectSchema = (\n properties: Record<string, JsonSchema>,\n options: ObjectSchemaOptions = {},\n): JsonObjectSchema => ({\n type: JsonSchemaTypeName.Object,\n additionalProperties: false,\n required: Object.keys(properties).sort((a, b) => a.localeCompare(b)),\n properties,\n ...options,\n});\n\nexport const getArraySchema = (\n items: JsonSchema,\n options: ArraySchemaOptions = {},\n): JsonArraySchema => ({\n type: JsonSchemaTypeName.Array,\n items,\n ...options,\n});\n\nexport const getRefSchema = ($ref: string, options: RefSchemaOptions = {}): JsonRefSchema => ({\n $ref,\n ...options,\n});\n\nexport const str = (params: StringSchemaOptions = {}): JsonStringSchema => getStringSchema(params);\nexport const num = (params: NumberSchemaOptions = {}): JsonNumberSchema => getNumberSchema(params);\nexport const bool = (params: BooleanSchemaOptions = {}): JsonBooleanSchema =>\n getBooleanSchema(params);\nexport const obj = (\n properties: Record<string, JsonSchema>,\n options?: ObjectSchemaOptions,\n): JsonObjectSchema => getObjectSchema(properties, options);\nexport const arr = (items: JsonSchema, options?: ArraySchemaOptions): JsonArraySchema =>\n getArraySchema(items, options);\nexport const ref = ($ref: string, options?: RefSchemaOptions): JsonRefSchema =>\n getRefSchema($ref, options);\n\nexport type {\n StringSchemaOptions,\n NumberSchemaOptions,\n BooleanSchemaOptions,\n ObjectSchemaOptions,\n ArraySchemaOptions,\n RefSchemaOptions,\n};\n\nexport type { ContentMediaType } from '../types/schema.types.js';\n"]}
|
package/dist/chunk-TBFTADML.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-TBFTADML.cjs"}
|