@ama-styling/figma-extractor 12.5.0-prerelease.51
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 +26 -0
- package/README.md +61 -0
- package/cli/figma-extract.d.ts +3 -0
- package/cli/figma-extract.d.ts.map +1 -0
- package/cli/figma-extract.js +115 -0
- package/cli/figma-extract.js.map +1 -0
- package/collection.json +11 -0
- package/core/constants.d.ts +3 -0
- package/core/constants.d.ts.map +1 -0
- package/core/constants.js +6 -0
- package/core/constants.js.map +1 -0
- package/core/generators/generate-manifest.d.ts +38 -0
- package/core/generators/generate-manifest.d.ts.map +1 -0
- package/core/generators/generate-manifest.js +35 -0
- package/core/generators/generate-manifest.js.map +1 -0
- package/core/generators/generate-package.d.ts +19 -0
- package/core/generators/generate-package.d.ts.map +1 -0
- package/core/generators/generate-package.js +42 -0
- package/core/generators/generate-package.js.map +1 -0
- package/core/generators/generate-tokens.d.ts +26 -0
- package/core/generators/generate-tokens.d.ts.map +1 -0
- package/core/generators/generate-tokens.js +31 -0
- package/core/generators/generate-tokens.js.map +1 -0
- package/core/generators/index.d.ts +5 -0
- package/core/generators/index.d.ts.map +1 -0
- package/core/generators/index.js +8 -0
- package/core/generators/index.js.map +1 -0
- package/core/generators/styles/generate-color.d.ts +25 -0
- package/core/generators/styles/generate-color.d.ts.map +1 -0
- package/core/generators/styles/generate-color.js +53 -0
- package/core/generators/styles/generate-color.js.map +1 -0
- package/core/generators/styles/generate-effect.d.ts +26 -0
- package/core/generators/styles/generate-effect.d.ts.map +1 -0
- package/core/generators/styles/generate-effect.js +54 -0
- package/core/generators/styles/generate-effect.js.map +1 -0
- package/core/generators/styles/generate-grid.d.ts +17 -0
- package/core/generators/styles/generate-grid.d.ts.map +1 -0
- package/core/generators/styles/generate-grid.js +41 -0
- package/core/generators/styles/generate-grid.js.map +1 -0
- package/core/generators/styles/generate-text.d.ts +25 -0
- package/core/generators/styles/generate-text.d.ts.map +1 -0
- package/core/generators/styles/generate-text.js +53 -0
- package/core/generators/styles/generate-text.js.map +1 -0
- package/core/generators/styles/index.d.ts +6 -0
- package/core/generators/styles/index.d.ts.map +1 -0
- package/core/generators/styles/index.js +9 -0
- package/core/generators/styles/index.js.map +1 -0
- package/core/generators/styles/interfaces.d.ts +15 -0
- package/core/generators/styles/interfaces.d.ts.map +1 -0
- package/core/generators/styles/interfaces.js +11 -0
- package/core/generators/styles/interfaces.js.map +1 -0
- package/core/generators/tokens/token-from-local-variables.d.ts +19 -0
- package/core/generators/tokens/token-from-local-variables.d.ts.map +1 -0
- package/core/generators/tokens/token-from-local-variables.js +59 -0
- package/core/generators/tokens/token-from-local-variables.js.map +1 -0
- package/core/helpers/color-hex.helpers.d.ts +12 -0
- package/core/helpers/color-hex.helpers.d.ts.map +1 -0
- package/core/helpers/color-hex.helpers.js +22 -0
- package/core/helpers/color-hex.helpers.js.map +1 -0
- package/core/helpers/context.helpers.d.ts +12 -0
- package/core/helpers/context.helpers.d.ts.map +1 -0
- package/core/helpers/context.helpers.js +20 -0
- package/core/helpers/context.helpers.js.map +1 -0
- package/core/helpers/create-output-folder.d.ts +8 -0
- package/core/helpers/create-output-folder.d.ts.map +1 -0
- package/core/helpers/create-output-folder.js +19 -0
- package/core/helpers/create-output-folder.js.map +1 -0
- package/core/helpers/file-names.d.ts +13 -0
- package/core/helpers/file-names.d.ts.map +1 -0
- package/core/helpers/file-names.js +23 -0
- package/core/helpers/file-names.js.map +1 -0
- package/core/helpers/generate-token-tree.helpers.d.ts +11 -0
- package/core/helpers/generate-token-tree.helpers.d.ts.map +1 -0
- package/core/helpers/generate-token-tree.helpers.js +26 -0
- package/core/helpers/generate-token-tree.helpers.js.map +1 -0
- package/core/helpers/name-to-reference.d.ts +6 -0
- package/core/helpers/name-to-reference.d.ts.map +1 -0
- package/core/helpers/name-to-reference.js +13 -0
- package/core/helpers/name-to-reference.js.map +1 -0
- package/core/helpers/variable-formatter.d.ts +7 -0
- package/core/helpers/variable-formatter.d.ts.map +1 -0
- package/core/helpers/variable-formatter.js +21 -0
- package/core/helpers/variable-formatter.js.map +1 -0
- package/core/helpers/vector.d.ts +11 -0
- package/core/helpers/vector.d.ts.map +1 -0
- package/core/helpers/vector.js +16 -0
- package/core/helpers/vector.js.map +1 -0
- package/core/interfaces.d.ts +31 -0
- package/core/interfaces.d.ts.map +1 -0
- package/core/interfaces.js +3 -0
- package/core/interfaces.js.map +1 -0
- package/core/requests/get-file.request.d.ts +12 -0
- package/core/requests/get-file.request.d.ts.map +1 -0
- package/core/requests/get-file.request.js +18 -0
- package/core/requests/get-file.request.js.map +1 -0
- package/core/requests/get-text-weight.request.d.ts +14 -0
- package/core/requests/get-text-weight.request.d.ts.map +1 -0
- package/core/requests/get-text-weight.request.js +31 -0
- package/core/requests/get-text-weight.request.js.map +1 -0
- package/core/requests/get-variable.request.d.ts +14 -0
- package/core/requests/get-variable.request.d.ts.map +1 -0
- package/core/requests/get-variable.request.js +21 -0
- package/core/requests/get-variable.request.js.map +1 -0
- package/core/requests/get-versions.request.d.ts +53 -0
- package/core/requests/get-versions.request.d.ts.map +1 -0
- package/core/requests/get-versions.request.js +95 -0
- package/core/requests/get-versions.request.js.map +1 -0
- package/generate-json.d.ts +22 -0
- package/generate-json.d.ts.map +1 -0
- package/generate-json.js +77 -0
- package/generate-json.js.map +1 -0
- package/package.json +176 -0
- package/public_api.d.ts +4 -0
- package/public_api.d.ts.map +1 -0
- package/public_api.js +7 -0
- package/public_api.js.map +1 -0
- package/schematics/ng-add/index.d.ts +8 -0
- package/schematics/ng-add/index.d.ts.map +1 -0
- package/schematics/ng-add/index.js +44 -0
- package/schematics/ng-add/schema.d.ts +12 -0
- package/schematics/ng-add/schema.d.ts.map +1 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.json +31 -0
- package/schematics/package.json +3 -0
package/package.json
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
{
|
2
|
+
"name": "@ama-styling/figma-extractor",
|
3
|
+
"version": "12.5.0-prerelease.51",
|
4
|
+
"publishConfig": {
|
5
|
+
"access": "public"
|
6
|
+
},
|
7
|
+
"description": "Tools to extract Design Token from the Figma files",
|
8
|
+
"keywords": [
|
9
|
+
"figma",
|
10
|
+
"design-token",
|
11
|
+
"otter",
|
12
|
+
"otter-module"
|
13
|
+
],
|
14
|
+
"scripts": {
|
15
|
+
"nx": "nx",
|
16
|
+
"ng": "yarn nx",
|
17
|
+
"build": "yarn nx build ama-figma-extractor",
|
18
|
+
"build:source": "tsc -b tsconfig.build.json --pretty && yarn cpy ./package.json dist",
|
19
|
+
"prepare:build:builders": "yarn cpy 'collection.json' dist && yarn cpy 'schematics/**/*.json' dist/schematics",
|
20
|
+
"build:builders": "tsc -b tsconfig.builders.json --pretty && yarn generate-cjs-manifest"
|
21
|
+
},
|
22
|
+
"bin": "./cli/figma-extract.js",
|
23
|
+
"generatorDependencies": {
|
24
|
+
"@ama-styling/style-dictionary": "^12.5.0-prerelease.51",
|
25
|
+
"style-dictionary": "~4.4.0"
|
26
|
+
},
|
27
|
+
"peerDependencies": {
|
28
|
+
"@ama-sdk/client-fetch": "^12.5.0-prerelease.51",
|
29
|
+
"@ama-sdk/core": "^12.5.0-prerelease.51",
|
30
|
+
"@angular-devkit/schematics": "~19.2.0",
|
31
|
+
"@o3r/schematics": "^12.5.0-prerelease.51",
|
32
|
+
"type-fest": "^4.30.1"
|
33
|
+
},
|
34
|
+
"peerDependenciesMeta": {
|
35
|
+
"@ama-sdk/client-fetch": {
|
36
|
+
"optional": true
|
37
|
+
},
|
38
|
+
"@angular-devkit/schematics": {
|
39
|
+
"optional": true
|
40
|
+
},
|
41
|
+
"@o3r/schematics": {
|
42
|
+
"optional": true
|
43
|
+
},
|
44
|
+
"type-fest": {
|
45
|
+
"optional": true
|
46
|
+
}
|
47
|
+
},
|
48
|
+
"dependencies": {
|
49
|
+
"@ama-sdk/client-fetch": "^12.5.0-prerelease.51",
|
50
|
+
"@ama-sdk/core": "^12.5.0-prerelease.51",
|
51
|
+
"@ama-styling/figma-sdk": "^12.5.0-prerelease.51",
|
52
|
+
"@o3r/schematics": "^12.5.0-prerelease.51",
|
53
|
+
"semver": "^7.5.2",
|
54
|
+
"tslib": "^2.6.2",
|
55
|
+
"yargs": "^17.6.2"
|
56
|
+
},
|
57
|
+
"devDependencies": {
|
58
|
+
"@ama-sdk/client-fetch": "^12.5.0-prerelease.51",
|
59
|
+
"@ama-sdk/core": "^12.5.0-prerelease.51",
|
60
|
+
"@angular-devkit/schematics": "~19.2.0",
|
61
|
+
"@compodoc/compodoc": "^1.1.19",
|
62
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
|
63
|
+
"@nx/eslint": "~20.8.0",
|
64
|
+
"@nx/eslint-plugin": "~20.8.0",
|
65
|
+
"@nx/jest": "~20.8.0",
|
66
|
+
"@nx/js": "~20.8.0",
|
67
|
+
"@o3r/build-helpers": "^12.5.0-prerelease.51",
|
68
|
+
"@o3r/eslint-plugin": "^12.5.0-prerelease.51",
|
69
|
+
"@o3r/test-helpers": "^12.5.0-prerelease.51",
|
70
|
+
"@stylistic/eslint-plugin": "~3.1.0",
|
71
|
+
"@types/jest": "~29.5.2",
|
72
|
+
"@types/node": "^20.0.0",
|
73
|
+
"@types/semver": "^7.3.13",
|
74
|
+
"@types/yargs": "~17.0.33",
|
75
|
+
"@typescript-eslint/parser": "~8.39.0",
|
76
|
+
"angular-eslint": "~19.4.0",
|
77
|
+
"cpy-cli": "^5.0.0",
|
78
|
+
"eslint": "~9.33.0",
|
79
|
+
"eslint-import-resolver-node": "~0.3.9",
|
80
|
+
"eslint-import-resolver-typescript": "~3.10.0",
|
81
|
+
"eslint-plugin-import": "~2.32.0",
|
82
|
+
"eslint-plugin-import-newlines": "~1.4.0",
|
83
|
+
"eslint-plugin-jest": "~28.14.0",
|
84
|
+
"eslint-plugin-jsdoc": "~50.8.0",
|
85
|
+
"eslint-plugin-prefer-arrow": "~1.2.3",
|
86
|
+
"eslint-plugin-unicorn": "~56.0.0",
|
87
|
+
"eslint-plugin-unused-imports": "~4.1.4",
|
88
|
+
"globals": "^15.9.0",
|
89
|
+
"jest": "~29.7.0",
|
90
|
+
"jest-environment-jsdom": "~29.7.0",
|
91
|
+
"jest-junit": "~16.0.0",
|
92
|
+
"jsonc-eslint-parser": "~2.4.0",
|
93
|
+
"nx": "~20.8.0",
|
94
|
+
"pid-from-port": "^1.1.3",
|
95
|
+
"semver": "^7.5.2",
|
96
|
+
"ts-jest": "~29.4.0",
|
97
|
+
"ts-node": "~10.9.2",
|
98
|
+
"type-fest": "^4.30.1",
|
99
|
+
"typescript": "~5.8.2",
|
100
|
+
"typescript-eslint": "~8.39.0",
|
101
|
+
"zone.js": "~0.15.0"
|
102
|
+
},
|
103
|
+
"schematics": "./collection.json",
|
104
|
+
"engines": {
|
105
|
+
"node": "^20.11.1 || >=22.0.0"
|
106
|
+
},
|
107
|
+
"contributors": [
|
108
|
+
{
|
109
|
+
"name": "Yannick Adam",
|
110
|
+
"url": "https://github.com/yannickadam",
|
111
|
+
"email": "yannickadam@users.noreply.github.com"
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"name": "Kilian Panot",
|
115
|
+
"url": "https://github.com/kpanot",
|
116
|
+
"email": "kpanot@users.noreply.github.com"
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"name": "Jeremy Bourgeois",
|
120
|
+
"url": "https://github.com/jbourgeois-1A",
|
121
|
+
"email": "jbourgeois-1A@users.noreply.github.com"
|
122
|
+
},
|
123
|
+
{
|
124
|
+
"name": "Pierre Henri Ginoux",
|
125
|
+
"url": "https://github.com/pginoux-1A",
|
126
|
+
"email": "pginoux-1A@users.noreply.github.com"
|
127
|
+
},
|
128
|
+
{
|
129
|
+
"name": "Mircea Vasile Rednic",
|
130
|
+
"url": "https://github.com/mrednic-1A",
|
131
|
+
"email": "mrednic-1A@users.noreply.github.com"
|
132
|
+
},
|
133
|
+
{
|
134
|
+
"name": "Stephane Dalle",
|
135
|
+
"url": "https://github.com/sdalle-1A",
|
136
|
+
"email": "sdalle-1A@users.noreply.github.com"
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"name": "Nicolas Hoffmann",
|
140
|
+
"url": "https://github.com/nhoffmann-1A",
|
141
|
+
"email": "nhoffmann-1A@users.noreply.github.com"
|
142
|
+
},
|
143
|
+
{
|
144
|
+
"name": "Victor Scaiceanu",
|
145
|
+
"url": "https://github.com/vscaiceanu-1a",
|
146
|
+
"email": "vscaiceanu-1A@users.noreply.github.com"
|
147
|
+
},
|
148
|
+
{
|
149
|
+
"name": "Florian Paul",
|
150
|
+
"url": "https://github.com/fpaul-1A",
|
151
|
+
"email": "fpaul-1A@users.noreply.github.com"
|
152
|
+
},
|
153
|
+
{
|
154
|
+
"name": "Corinne Paulve",
|
155
|
+
"url": "https://github.com/cpaulve-1A",
|
156
|
+
"email": "cpaulve-1A@users.noreply.github.com"
|
157
|
+
},
|
158
|
+
{
|
159
|
+
"name": "Matthieu Crouzet",
|
160
|
+
"url": "https://github.com/matthieu-crouzet",
|
161
|
+
"email": "matthieu-crouzet@users.noreply.github.com"
|
162
|
+
},
|
163
|
+
{
|
164
|
+
"name": "Salome Do",
|
165
|
+
"url": "https://github.com/sdo-1A",
|
166
|
+
"email": "sdo-1A@users.noreply.github.com"
|
167
|
+
}
|
168
|
+
],
|
169
|
+
"bugs": "https://github.com/AmadeusITGroup/otter/issues",
|
170
|
+
"repository": {
|
171
|
+
"type": "git",
|
172
|
+
"url": "git+https://github.com/AmadeusITGroup/otter.git"
|
173
|
+
},
|
174
|
+
"license": "BSD-3-Clause",
|
175
|
+
"homepage": "https://amadeusitgroup.github.io/otter/"
|
176
|
+
}
|
package/public_api.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"public_api.d.ts","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC"}
|
package/public_api.js
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const tslib_1 = require("tslib");
|
4
|
+
tslib_1.__exportStar(require("./core/interfaces"), exports);
|
5
|
+
tslib_1.__exportStar(require("./core/constants"), exports);
|
6
|
+
tslib_1.__exportStar(require("./generate-json"), exports);
|
7
|
+
//# sourceMappingURL=public_api.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../src/public_api.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,2DAAiC;AACjC,0DAAgC"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { type Rule } from '@angular-devkit/schematics';
|
2
|
+
import type { NgAddSchematicsSchema } from './schema';
|
3
|
+
/**
|
4
|
+
* Add Otter apis manager to an Angular Project
|
5
|
+
* @param options
|
6
|
+
*/
|
7
|
+
export declare const ngAdd: (options: NgAddSchematicsSchema) => Rule;
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,IAAI,EACV,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAoClB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,qBAAqB,SAA2C,CAAC"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ngAdd = void 0;
|
4
|
+
const path = require("node:path");
|
5
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
6
|
+
const schematics_2 = require("@o3r/schematics");
|
7
|
+
/**
|
8
|
+
* Add Figma Extractor to an Angular Project
|
9
|
+
* @param options
|
10
|
+
*/
|
11
|
+
function ngAddFn(options) {
|
12
|
+
return (tree) => {
|
13
|
+
const packageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
|
14
|
+
const depsInfo = (0, schematics_2.getO3rPeerDeps)(packageJsonPath);
|
15
|
+
const rulesToExecute = [];
|
16
|
+
const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
|
17
|
+
const dependencies = depsInfo.o3rPeerDeps.reduce((acc, dep) => {
|
18
|
+
acc[dep] = {
|
19
|
+
inManifest: [{
|
20
|
+
range: `${options.exactO3rVersion ? '' : '~'}${depsInfo.packageVersion}`,
|
21
|
+
types: (0, schematics_2.getProjectNewDependenciesTypes)(workspaceProject)
|
22
|
+
}],
|
23
|
+
ngAddOptions: { exactO3rVersion: options.exactO3rVersion }
|
24
|
+
};
|
25
|
+
return acc;
|
26
|
+
}, (0, schematics_2.getPackageInstallConfig)(packageJsonPath, tree, options.projectName, false, !!options.exactO3rVersion));
|
27
|
+
return () => (0, schematics_1.chain)([
|
28
|
+
...rulesToExecute,
|
29
|
+
options.skipLinter ? schematics_1.noop : (0, schematics_2.applyEsLintFix)(),
|
30
|
+
(0, schematics_2.setupDependencies)({
|
31
|
+
projectName: options.projectName,
|
32
|
+
dependencies,
|
33
|
+
ngAddToRun: depsInfo.o3rPeerDeps
|
34
|
+
})
|
35
|
+
]);
|
36
|
+
};
|
37
|
+
}
|
38
|
+
/**
|
39
|
+
* Add Otter apis manager to an Angular Project
|
40
|
+
* @param options
|
41
|
+
*/
|
42
|
+
const ngAdd = (options) => (0, schematics_2.createOtterSchematic)(ngAddFn)(options);
|
43
|
+
exports.ngAdd = ngAdd;
|
44
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import type { SchematicOptionObject } from '@o3r/schematics';
|
2
|
+
export interface NgAddSchematicsSchema extends SchematicOptionObject {
|
3
|
+
/** Project name */
|
4
|
+
projectName?: string | undefined;
|
5
|
+
/** Skip the linter process which includes the run of EsLint and EditorConfig rules */
|
6
|
+
skipLinter: boolean;
|
7
|
+
/** Skip the install process */
|
8
|
+
skipInstall: boolean;
|
9
|
+
/** Use a pinned version for otter packages */
|
10
|
+
exactO3rVersion?: boolean;
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=schema.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjC,sFAAsF;IACtF,UAAU,EAAE,OAAO,CAAC;IAEpB,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IAErB,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
3
|
+
"$id": "ngAddSchematicsSchema",
|
4
|
+
"title": "Add Otter library",
|
5
|
+
"description": "ngAdd Otter library",
|
6
|
+
"properties": {
|
7
|
+
"projectName": {
|
8
|
+
"type": "string",
|
9
|
+
"description": "Project name",
|
10
|
+
"$default": {
|
11
|
+
"$source": "projectName"
|
12
|
+
}
|
13
|
+
},
|
14
|
+
"skipLinter": {
|
15
|
+
"type": "boolean",
|
16
|
+
"description": "Skip the linter process which includes EsLint and EditorConfig rules applying",
|
17
|
+
"default": false
|
18
|
+
},
|
19
|
+
"skipInstall": {
|
20
|
+
"type": "boolean",
|
21
|
+
"description": "Skip the install process",
|
22
|
+
"default": true
|
23
|
+
},
|
24
|
+
"exactO3rVersion": {
|
25
|
+
"type": "boolean",
|
26
|
+
"description": "Use a pinned version for otter packages"
|
27
|
+
}
|
28
|
+
},
|
29
|
+
"required": [
|
30
|
+
]
|
31
|
+
}
|