@pacp/spec 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/dist/index.cjs +133 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +223 -0
- package/dist/index.d.ts +223 -0
- package/dist/index.js +116 -0
- package/dist/index.js.map +1 -0
- package/dist/pacp.schema.json +661 -0
- package/dist/profiles/fiscal-br.schema.json +37 -0
- package/dist/profiles/iluminacao.schema.json +51 -0
- package/dist/profiles/moveis.schema.json +43 -0
- package/dist/profiles/pisos-revestimentos.schema.json +50 -0
- package/dist/schema.cjs +48 -0
- package/dist/schema.cjs.map +1 -0
- package/dist/schema.d.cts +11 -0
- package/dist/schema.d.ts +11 -0
- package/dist/schema.js +28 -0
- package/dist/schema.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://pacp.dev/spec/1.0.0/profiles/iluminacao.schema.json",
|
|
4
|
+
"title": "PACP Profile: Iluminacao",
|
|
5
|
+
"description": "Extension profile para produtos de iluminacao. Define campos x-* recomendados para o setor.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"x-lumens": {
|
|
9
|
+
"type": "number",
|
|
10
|
+
"exclusiveMinimum": 0,
|
|
11
|
+
"description": "Fluxo luminoso em lumens."
|
|
12
|
+
},
|
|
13
|
+
"x-color_temp_k": {
|
|
14
|
+
"type": "number",
|
|
15
|
+
"exclusiveMinimum": 0,
|
|
16
|
+
"description": "Temperatura de cor em Kelvin (ex: 3000 para branco quente)."
|
|
17
|
+
},
|
|
18
|
+
"x-ip_rating": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^IP[0-9X]{2}$",
|
|
21
|
+
"description": "Grau de protecao IP (ex: 'IP65', 'IP20')."
|
|
22
|
+
},
|
|
23
|
+
"x-voltage": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["12V", "24V", "110V", "220V", "BIVOLT"],
|
|
26
|
+
"description": "Tensao de operacao."
|
|
27
|
+
},
|
|
28
|
+
"x-dimmable": {
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"description": "Indica se o produto e dimerizavel."
|
|
31
|
+
},
|
|
32
|
+
"x-lamp_type": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"minLength": 1,
|
|
35
|
+
"description": "Tipo de lampada (ex: 'LED', 'Halogeneo', 'Fluorescente')."
|
|
36
|
+
},
|
|
37
|
+
"x-beam_angle_deg": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"exclusiveMinimum": 0,
|
|
40
|
+
"maximum": 360,
|
|
41
|
+
"description": "Angulo de abertura do facho em graus."
|
|
42
|
+
},
|
|
43
|
+
"x-cri": {
|
|
44
|
+
"type": "number",
|
|
45
|
+
"minimum": 0,
|
|
46
|
+
"maximum": 100,
|
|
47
|
+
"description": "Indice de reproducao de cor (CRI/IRC)."
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"additionalProperties": true
|
|
51
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://pacp.dev/spec/1.0.0/profiles/moveis.schema.json",
|
|
4
|
+
"title": "PACP Profile: Moveis e Alta Decoracao",
|
|
5
|
+
"description": "Extension profile para produtos de moveis e alta decoracao. Define campos x-* recomendados para o setor.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"x-assembly_required": {
|
|
9
|
+
"type": "boolean",
|
|
10
|
+
"description": "Indica se o produto requer montagem."
|
|
11
|
+
},
|
|
12
|
+
"x-load_capacity": {
|
|
13
|
+
"$ref": "https://pacp.dev/spec/1.0.0/pacp.schema.json#/$defs/measure",
|
|
14
|
+
"description": "Capacidade de carga do movel (ex: {value: 50, unit: 'kg'})."
|
|
15
|
+
},
|
|
16
|
+
"x-material_composition": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"minLength": 1,
|
|
19
|
+
"description": "Composicao principal do material (ex: 'MDF com laminado melaminico')."
|
|
20
|
+
},
|
|
21
|
+
"x-finish": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"minLength": 1,
|
|
24
|
+
"description": "Acabamento superficial (ex: 'Lacado brilho', 'Nogueira natural')."
|
|
25
|
+
},
|
|
26
|
+
"x-warranty_months": {
|
|
27
|
+
"type": "integer",
|
|
28
|
+
"minimum": 0,
|
|
29
|
+
"description": "Garantia em meses oferecida pelo fabricante."
|
|
30
|
+
},
|
|
31
|
+
"x-style": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"description": "Estilo do movel (ex: 'Contemporaneo', 'Classico', 'Industrial')."
|
|
35
|
+
},
|
|
36
|
+
"x-indoor_outdoor": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": ["INDOOR", "OUTDOOR", "BOTH"],
|
|
39
|
+
"description": "Indicacao de uso interno, externo ou ambos."
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"additionalProperties": true
|
|
43
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://pacp.dev/spec/1.0.0/profiles/pisos-revestimentos.schema.json",
|
|
4
|
+
"title": "PACP Profile: Pisos e Revestimentos",
|
|
5
|
+
"description": "Extension profile para produtos de pisos e revestimentos ceramicos, porcelanatos e afins. Define campos x-* recomendados para o setor.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"x-pei": {
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"minimum": 0,
|
|
11
|
+
"maximum": 5,
|
|
12
|
+
"description": "Classe de resistencia a abrasao PEI (0 a 5)."
|
|
13
|
+
},
|
|
14
|
+
"x-water_absorption_pct": {
|
|
15
|
+
"type": "number",
|
|
16
|
+
"minimum": 0,
|
|
17
|
+
"description": "Percentual de absorcao de agua."
|
|
18
|
+
},
|
|
19
|
+
"x-slip_resistance": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"minLength": 1,
|
|
22
|
+
"description": "Classificacao de resistencia a escorregamento (ex: 'R9', 'R10', 'R11')."
|
|
23
|
+
},
|
|
24
|
+
"x-rectified": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"description": "Indica se a peca e retificada (bordas retas)."
|
|
27
|
+
},
|
|
28
|
+
"x-surface_finish": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"minLength": 1,
|
|
31
|
+
"description": "Acabamento superficial (ex: 'Polido', 'Acetinado', 'Natural', 'Rustico')."
|
|
32
|
+
},
|
|
33
|
+
"x-nominal_size_cm": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"minLength": 1,
|
|
36
|
+
"description": "Tamanho nominal da peca em cm (ex: '60x60', '120x60', '20x20')."
|
|
37
|
+
},
|
|
38
|
+
"x-thickness_mm": {
|
|
39
|
+
"type": "number",
|
|
40
|
+
"exclusiveMinimum": 0,
|
|
41
|
+
"description": "Espessura da peca em milimetros."
|
|
42
|
+
},
|
|
43
|
+
"x-usage": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"enum": ["FLOOR", "WALL", "FLOOR_WALL", "OUTDOOR", "POOL"],
|
|
46
|
+
"description": "Uso recomendado da peca."
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"additionalProperties": true
|
|
50
|
+
}
|
package/dist/schema.cjs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/schema.ts
|
|
21
|
+
var schema_exports = {};
|
|
22
|
+
__export(schema_exports, {
|
|
23
|
+
profileIds: () => profileIds,
|
|
24
|
+
profiles: () => profiles,
|
|
25
|
+
schema: () => schema
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(schema_exports);
|
|
28
|
+
var import_node_fs = require("fs");
|
|
29
|
+
var import_node_path = require("path");
|
|
30
|
+
function loadJson(relativePath) {
|
|
31
|
+
const fullPath = (0, import_node_path.join)(__dirname, relativePath);
|
|
32
|
+
return JSON.parse((0, import_node_fs.readFileSync)(fullPath, "utf8"));
|
|
33
|
+
}
|
|
34
|
+
var schema = loadJson("./pacp.schema.json");
|
|
35
|
+
var profiles = {
|
|
36
|
+
moveis: loadJson("./profiles/moveis.schema.json"),
|
|
37
|
+
iluminacao: loadJson("./profiles/iluminacao.schema.json"),
|
|
38
|
+
"pisos-revestimentos": loadJson("./profiles/pisos-revestimentos.schema.json"),
|
|
39
|
+
"fiscal-br": loadJson("./profiles/fiscal-br.schema.json")
|
|
40
|
+
};
|
|
41
|
+
var profileIds = Object.keys(profiles);
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
profileIds,
|
|
45
|
+
profiles,
|
|
46
|
+
schema
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=schema.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\r\nimport { join } from \"node:path\";\r\n\r\nfunction loadJson(relativePath: string): Record<string, unknown> {\r\n const fullPath = join(__dirname, relativePath);\r\n return JSON.parse(readFileSync(fullPath, \"utf8\"));\r\n}\r\n\r\nexport const schema = loadJson(\"./pacp.schema.json\") as Record<string, unknown>;\r\n\r\nexport const profiles = {\r\n moveis: loadJson(\"./profiles/moveis.schema.json\") as Record<string, unknown>,\r\n iluminacao: loadJson(\"./profiles/iluminacao.schema.json\") as Record<string, unknown>,\r\n \"pisos-revestimentos\": loadJson(\"./profiles/pisos-revestimentos.schema.json\") as Record<string, unknown>,\r\n \"fiscal-br\": loadJson(\"./profiles/fiscal-br.schema.json\") as Record<string, unknown>,\r\n} as const;\r\n\r\nexport type ProfileId = keyof typeof profiles;\r\n\r\nexport const profileIds = Object.keys(profiles) as ProfileId[];\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA6B;AAC7B,uBAAqB;AAErB,SAAS,SAAS,cAA+C;AAC/D,QAAM,eAAW,uBAAK,WAAW,YAAY;AAC7C,SAAO,KAAK,UAAM,6BAAa,UAAU,MAAM,CAAC;AAClD;AAEO,IAAM,SAAS,SAAS,oBAAoB;AAE5C,IAAM,WAAW;AAAA,EACtB,QAAQ,SAAS,+BAA+B;AAAA,EAChD,YAAY,SAAS,mCAAmC;AAAA,EACxD,uBAAuB,SAAS,4CAA4C;AAAA,EAC5E,aAAa,SAAS,kCAAkC;AAC1D;AAIO,IAAM,aAAa,OAAO,KAAK,QAAQ;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const schema: Record<string, unknown>;
|
|
2
|
+
declare const profiles: {
|
|
3
|
+
readonly moveis: Record<string, unknown>;
|
|
4
|
+
readonly iluminacao: Record<string, unknown>;
|
|
5
|
+
readonly "pisos-revestimentos": Record<string, unknown>;
|
|
6
|
+
readonly "fiscal-br": Record<string, unknown>;
|
|
7
|
+
};
|
|
8
|
+
type ProfileId = keyof typeof profiles;
|
|
9
|
+
declare const profileIds: ProfileId[];
|
|
10
|
+
|
|
11
|
+
export { type ProfileId, profileIds, profiles, schema };
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare const schema: Record<string, unknown>;
|
|
2
|
+
declare const profiles: {
|
|
3
|
+
readonly moveis: Record<string, unknown>;
|
|
4
|
+
readonly iluminacao: Record<string, unknown>;
|
|
5
|
+
readonly "pisos-revestimentos": Record<string, unknown>;
|
|
6
|
+
readonly "fiscal-br": Record<string, unknown>;
|
|
7
|
+
};
|
|
8
|
+
type ProfileId = keyof typeof profiles;
|
|
9
|
+
declare const profileIds: ProfileId[];
|
|
10
|
+
|
|
11
|
+
export { type ProfileId, profileIds, profiles, schema };
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// node_modules/tsup/assets/esm_shims.js
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
var getFilename = () => fileURLToPath(import.meta.url);
|
|
5
|
+
var getDirname = () => path.dirname(getFilename());
|
|
6
|
+
var __dirname = /* @__PURE__ */ getDirname();
|
|
7
|
+
|
|
8
|
+
// src/schema.ts
|
|
9
|
+
import { readFileSync } from "fs";
|
|
10
|
+
import { join } from "path";
|
|
11
|
+
function loadJson(relativePath) {
|
|
12
|
+
const fullPath = join(__dirname, relativePath);
|
|
13
|
+
return JSON.parse(readFileSync(fullPath, "utf8"));
|
|
14
|
+
}
|
|
15
|
+
var schema = loadJson("./pacp.schema.json");
|
|
16
|
+
var profiles = {
|
|
17
|
+
moveis: loadJson("./profiles/moveis.schema.json"),
|
|
18
|
+
iluminacao: loadJson("./profiles/iluminacao.schema.json"),
|
|
19
|
+
"pisos-revestimentos": loadJson("./profiles/pisos-revestimentos.schema.json"),
|
|
20
|
+
"fiscal-br": loadJson("./profiles/fiscal-br.schema.json")
|
|
21
|
+
};
|
|
22
|
+
var profileIds = Object.keys(profiles);
|
|
23
|
+
export {
|
|
24
|
+
profileIds,
|
|
25
|
+
profiles,
|
|
26
|
+
schema
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/tsup/assets/esm_shims.js","../src/schema.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import { readFileSync } from \"node:fs\";\r\nimport { join } from \"node:path\";\r\n\r\nfunction loadJson(relativePath: string): Record<string, unknown> {\r\n const fullPath = join(__dirname, relativePath);\r\n return JSON.parse(readFileSync(fullPath, \"utf8\"));\r\n}\r\n\r\nexport const schema = loadJson(\"./pacp.schema.json\") as Record<string, unknown>;\r\n\r\nexport const profiles = {\r\n moveis: loadJson(\"./profiles/moveis.schema.json\") as Record<string, unknown>,\r\n iluminacao: loadJson(\"./profiles/iluminacao.schema.json\") as Record<string, unknown>,\r\n \"pisos-revestimentos\": loadJson(\"./profiles/pisos-revestimentos.schema.json\") as Record<string, unknown>,\r\n \"fiscal-br\": loadJson(\"./profiles/fiscal-br.schema.json\") as Record<string, unknown>,\r\n} as const;\r\n\r\nexport type ProfileId = keyof typeof profiles;\r\n\r\nexport const profileIds = Object.keys(profiles) as ProfileId[];\r\n"],"mappings":";AACA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAE9B,IAAM,cAAc,MAAM,cAAc,YAAY,GAAG;AACvD,IAAM,aAAa,MAAM,KAAK,QAAQ,YAAY,CAAC;AAE5C,IAAM,YAA4B,2BAAW;;;ACPpD,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AAErB,SAAS,SAAS,cAA+C;AAC/D,QAAM,WAAW,KAAK,WAAW,YAAY;AAC7C,SAAO,KAAK,MAAM,aAAa,UAAU,MAAM,CAAC;AAClD;AAEO,IAAM,SAAS,SAAS,oBAAoB;AAE5C,IAAM,WAAW;AAAA,EACtB,QAAQ,SAAS,+BAA+B;AAAA,EAChD,YAAY,SAAS,mCAAmC;AAAA,EACxD,uBAAuB,SAAS,4CAA4C;AAAA,EAC5E,aAAa,SAAS,kCAAkC;AAC1D;AAIO,IAAM,aAAa,OAAO,KAAK,QAAQ;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pacp/spec",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "PACP - Padrão Aberto de Catálogo e Precificação. Schema, profiles e validador para catálogos de produtos.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/index.d.cts",
|
|
17
|
+
"default": "./dist/index.cjs"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"./schema": {
|
|
21
|
+
"import": {
|
|
22
|
+
"types": "./dist/schema.d.ts",
|
|
23
|
+
"default": "./dist/schema.js"
|
|
24
|
+
},
|
|
25
|
+
"require": {
|
|
26
|
+
"types": "./dist/schema.d.cts",
|
|
27
|
+
"default": "./dist/schema.cjs"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"./profiles/*": {
|
|
31
|
+
"import": "./dist/profiles/*.js",
|
|
32
|
+
"require": "./dist/profiles/*.cjs"
|
|
33
|
+
},
|
|
34
|
+
"./schema.json": "./dist/pacp.schema.json",
|
|
35
|
+
"./profiles/moveis.json": "./dist/profiles/moveis.schema.json",
|
|
36
|
+
"./profiles/iluminacao.json": "./dist/profiles/iluminacao.schema.json",
|
|
37
|
+
"./profiles/pisos-revestimentos.json": "./dist/profiles/pisos-revestimentos.schema.json",
|
|
38
|
+
"./profiles/fiscal-br.json": "./dist/profiles/fiscal-br.schema.json"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist",
|
|
42
|
+
"README.md",
|
|
43
|
+
"LICENSE"
|
|
44
|
+
],
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsup",
|
|
47
|
+
"prepublishOnly": "npm run build"
|
|
48
|
+
},
|
|
49
|
+
"keywords": [
|
|
50
|
+
"pacp",
|
|
51
|
+
"catalog",
|
|
52
|
+
"pricing",
|
|
53
|
+
"json-schema",
|
|
54
|
+
"moveis",
|
|
55
|
+
"pisos",
|
|
56
|
+
"iluminacao",
|
|
57
|
+
"open-standard",
|
|
58
|
+
"deterministic"
|
|
59
|
+
],
|
|
60
|
+
"author": "PACP contributors",
|
|
61
|
+
"license": "MIT",
|
|
62
|
+
"repository": {
|
|
63
|
+
"type": "git",
|
|
64
|
+
"url": "https://github.com/pacp-org/pacp.git",
|
|
65
|
+
"directory": "packages/pacp"
|
|
66
|
+
},
|
|
67
|
+
"homepage": "https://pacp-org.github.io/pacp/",
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@types/node": "^25.4.0",
|
|
70
|
+
"ajv": "^8.17.1",
|
|
71
|
+
"ajv-formats": "^3.0.1",
|
|
72
|
+
"tsup": "^8.4.0",
|
|
73
|
+
"typescript": "^5.9.3"
|
|
74
|
+
},
|
|
75
|
+
"peerDependencies": {
|
|
76
|
+
"ajv": ">=8.0.0",
|
|
77
|
+
"ajv-formats": ">=3.0.0"
|
|
78
|
+
},
|
|
79
|
+
"peerDependenciesMeta": {
|
|
80
|
+
"ajv": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
"ajv-formats": {
|
|
84
|
+
"optional": true
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|