@flextudio/scenario 0.1.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 +202 -0
- package/README.md +260 -0
- package/bin/flex-scenario.mjs +895 -0
- package/commands/flex-spec.md +28 -0
- package/contract-data/README.md +267 -0
- package/contract-data/examples/README.md +147 -0
- package/contract-data/examples/basic/basic-list-detail.json +2521 -0
- package/contract-data/examples/basic/delivery-address-popup.json +2175 -0
- package/contract-data/examples/basic/fixedtop-floating-form.json +1524 -0
- package/contract-data/examples/basic/search-period-popup.json +1524 -0
- package/contract-data/examples/design/booking-wizard-3step.json +1335 -0
- package/contract-data/examples/design/list-detail-form-3step.json +1516 -0
- package/contract-data/examples/design/list-filter-2step.json +1365 -0
- package/contract-data/examples/design/list-filter-detail-3step.json +1570 -0
- package/contract-data/examples/design/result-entry-wizard-4step.json +1861 -0
- package/contract-data/examples/intent/mock-employee-list.json +54 -0
- package/contract-data/examples/intent/script-cart-flow.json +96 -0
- package/contract-data/examples/intent/script-dialog-confirm.json +61 -0
- package/contract-data/runtime/v1/collection/README.md +119 -0
- package/contract-data/runtime/v1/collection/_c.md +205 -0
- package/contract-data/runtime/v1/collection/category.md +165 -0
- package/contract-data/runtime/v1/collection/collection.md +135 -0
- package/contract-data/runtime/v1/collection/lifecycle.md +140 -0
- package/contract-data/runtime/v1/collection/naming.md +174 -0
- package/contract-data/runtime/v1/collection/sector.md +176 -0
- package/contract-data/runtime/v1/collection/status.md +114 -0
- package/contract-data/runtime/v1/intent-system/INTENT.md +552 -0
- package/contract-data/runtime/v1/intent-system/README.md +118 -0
- package/contract-data/runtime/v1/intent-system/intent.schema.json +164 -0
- package/contract-data/runtime/v1/intent-system/kinds/_base.mjs +137 -0
- package/contract-data/runtime/v1/intent-system/kinds/clearCategory.mjs +35 -0
- package/contract-data/runtime/v1/intent-system/kinds/copyStepValues.mjs +100 -0
- package/contract-data/runtime/v1/intent-system/kinds/deleteActive.mjs +45 -0
- package/contract-data/runtime/v1/intent-system/kinds/dialog.mjs +127 -0
- package/contract-data/runtime/v1/intent-system/kinds/reloadGroup.mjs +28 -0
- package/contract-data/runtime/v1/intent-system/kinds/updateActive.mjs +74 -0
- package/contract-data/runtime/v1/intent-system/materialize.mjs +495 -0
- package/contract-data/runtime/v1/script/README.md +37 -0
- package/contract-data/runtime/v1/script/current_step.md +112 -0
- package/contract-data/runtime/v1/script/f_collection.md +142 -0
- package/contract-data/runtime/v1/script/f_content.md +133 -0
- package/contract-data/runtime/v1/script/f_messagebox.md +132 -0
- package/contract-data/runtime/v1/script/scenario-gen-rules.md +264 -0
- package/contract-data/schema/v1/SKELETON-SHELL.md +120 -0
- package/contract-data/schema/v1/bottom-buttons.md +155 -0
- package/contract-data/schema/v1/bottom-buttons.schema.json +134 -0
- package/contract-data/schema/v1/control/_base.schema.json +1296 -0
- package/contract-data/schema/v1/control/button.md +147 -0
- package/contract-data/schema/v1/control/button.schema.json +55 -0
- package/contract-data/schema/v1/control/calendar-navigator.md +143 -0
- package/contract-data/schema/v1/control/calendar-navigator.schema.json +164 -0
- package/contract-data/schema/v1/control/calendar.md +128 -0
- package/contract-data/schema/v1/control/calendar.schema.json +18 -0
- package/contract-data/schema/v1/control/check-box.md +117 -0
- package/contract-data/schema/v1/control/check-box.schema.json +41 -0
- package/contract-data/schema/v1/control/combo.md +293 -0
- package/contract-data/schema/v1/control/combo.schema.json +23 -0
- package/contract-data/schema/v1/control/embed.md +211 -0
- package/contract-data/schema/v1/control/embed.schema.json +30 -0
- package/contract-data/schema/v1/control/image-box.md +237 -0
- package/contract-data/schema/v1/control/image-box.schema.json +49 -0
- package/contract-data/schema/v1/control/input-date.md +175 -0
- package/contract-data/schema/v1/control/input-date.schema.json +27 -0
- package/contract-data/schema/v1/control/input-file.md +192 -0
- package/contract-data/schema/v1/control/input-file.schema.json +139 -0
- package/contract-data/schema/v1/control/input-mask.md +89 -0
- package/contract-data/schema/v1/control/input-mask.schema.json +45 -0
- package/contract-data/schema/v1/control/input-number.md +55 -0
- package/contract-data/schema/v1/control/input-number.schema.json +24 -0
- package/contract-data/schema/v1/control/input-text.md +73 -0
- package/contract-data/schema/v1/control/input-text.schema.json +24 -0
- package/contract-data/schema/v1/control/label.md +127 -0
- package/contract-data/schema/v1/control/label.schema.json +113 -0
- package/contract-data/schema/v1/control/multi-input-box.md +51 -0
- package/contract-data/schema/v1/control/multi-input-box.schema.json +19 -0
- package/contract-data/schema/v1/control/other.schema.json +24 -0
- package/contract-data/schema/v1/control/radio-box.md +150 -0
- package/contract-data/schema/v1/control/radio-box.schema.json +87 -0
- package/contract-data/schema/v1/control/search.md +163 -0
- package/contract-data/schema/v1/control/search.schema.json +23 -0
- package/contract-data/schema/v1/control/tab.md +240 -0
- package/contract-data/schema/v1/control/tab.schema.json +112 -0
- package/contract-data/schema/v1/control/tree.md +278 -0
- package/contract-data/schema/v1/control/tree.schema.json +83 -0
- package/contract-data/schema/v1/control.md +264 -0
- package/contract-data/schema/v1/control.schema.json +30 -0
- package/contract-data/schema/v1/data-objects.md +278 -0
- package/contract-data/schema/v1/data-objects.schema.json +161 -0
- package/contract-data/schema/v1/data-sources.md +215 -0
- package/contract-data/schema/v1/data-sources.schema.json +184 -0
- package/contract-data/schema/v1/design-system/DESIGN.md +282 -0
- package/contract-data/schema/v1/design-system/README.md +235 -0
- package/contract-data/schema/v1/design-system/design.schema.json +496 -0
- package/contract-data/schema/v1/design-system/error-mapping.mjs +132 -0
- package/contract-data/schema/v1/design-system/materialize.mjs +1435 -0
- package/contract-data/schema/v1/design-system/tests/_base.additional-meta.test.mjs +98 -0
- package/contract-data/schema/v1/design-system/tests/_base.materialize.test.mjs +596 -0
- package/contract-data/schema/v1/design-system/tests/checklist.test.mjs +135 -0
- package/contract-data/schema/v1/design-system/tests/design.schema.test.mjs +487 -0
- package/contract-data/schema/v1/design-system/tests/error-mapping.test.mjs +244 -0
- package/contract-data/schema/v1/design-system/tests/materialize.test.mjs +1093 -0
- package/contract-data/schema/v1/design-system/tests/move-step.test.mjs +119 -0
- package/contract-data/schema/v1/design-system/tests/override.integration.test.mjs +116 -0
- package/contract-data/schema/v1/design-system/tokens.json +76 -0
- package/contract-data/schema/v1/events.md +467 -0
- package/contract-data/schema/v1/events.schema.json +272 -0
- package/contract-data/schema/v1/group.md +146 -0
- package/contract-data/schema/v1/group.schema.json +133 -0
- package/contract-data/schema/v1/mockup-data.md +186 -0
- package/contract-data/schema/v1/naming-objects.schema.json +133 -0
- package/contract-data/schema/v1/node.md +32 -0
- package/contract-data/schema/v1/node.schema.json +24 -0
- package/contract-data/schema/v1/patterns/_base.additional-meta.mjs +135 -0
- package/contract-data/schema/v1/patterns/_base.controls.mjs +759 -0
- package/contract-data/schema/v1/patterns/_base.icon.mjs +61 -0
- package/contract-data/schema/v1/patterns/_base.id.mjs +15 -0
- package/contract-data/schema/v1/patterns/_base.materialize.mjs +1181 -0
- package/contract-data/schema/v1/patterns/_base.style.mjs +312 -0
- package/contract-data/schema/v1/patterns/atom/badge.materialize.mjs +68 -0
- package/contract-data/schema/v1/patterns/atom/badge.schema.json +44 -0
- package/contract-data/schema/v1/patterns/atom/button.materialize.mjs +91 -0
- package/contract-data/schema/v1/patterns/atom/button.schema.json +70 -0
- package/contract-data/schema/v1/patterns/atom/checkbox.materialize.mjs +40 -0
- package/contract-data/schema/v1/patterns/atom/checkbox.schema.json +39 -0
- package/contract-data/schema/v1/patterns/atom/segmented-radio.materialize.mjs +67 -0
- package/contract-data/schema/v1/patterns/atom/segmented-radio.schema.json +49 -0
- package/contract-data/schema/v1/patterns/atom/switch.materialize.mjs +58 -0
- package/contract-data/schema/v1/patterns/atom/switch.schema.json +27 -0
- package/contract-data/schema/v1/patterns/molecule/checklist.materialize.mjs +130 -0
- package/contract-data/schema/v1/patterns/molecule/checklist.schema.json +63 -0
- package/contract-data/schema/v1/patterns/molecule/input-action.materialize.mjs +356 -0
- package/contract-data/schema/v1/patterns/molecule/input-action.schema.json +251 -0
- package/contract-data/schema/v1/patterns/molecule/input-button.materialize.mjs +183 -0
- package/contract-data/schema/v1/patterns/molecule/input-button.schema.json +141 -0
- package/contract-data/schema/v1/patterns/molecule/input-pair.materialize.mjs +254 -0
- package/contract-data/schema/v1/patterns/molecule/input-pair.schema.json +210 -0
- package/contract-data/schema/v1/scenario.md +112 -0
- package/contract-data/schema/v1/scenario.schema.json +161 -0
- package/contract-data/schema/v1/service/CustomSystem.md +139 -0
- package/contract-data/schema/v1/service/CustomSystem.schema.json +41 -0
- package/contract-data/schema/v1/service/Firestore.md +125 -0
- package/contract-data/schema/v1/service/Firestore.schema.json +28 -0
- package/contract-data/schema/v1/service/FlexAutoQuery.md +128 -0
- package/contract-data/schema/v1/service/FlexAutoQuery.schema.json +35 -0
- package/contract-data/schema/v1/service/FlexSQL.md +96 -0
- package/contract-data/schema/v1/service/FlexSQL.schema.json +33 -0
- package/contract-data/schema/v1/service/Flextudio API.md +161 -0
- package/contract-data/schema/v1/service/Flextudio API.schema.json +115 -0
- package/contract-data/schema/v1/service/Flextudio.md +87 -0
- package/contract-data/schema/v1/service/Flextudio.schema.json +26 -0
- package/contract-data/schema/v1/service/GoogleSheet.md +71 -0
- package/contract-data/schema/v1/service/GoogleSheet.schema.json +31 -0
- package/contract-data/schema/v1/service/README.md +127 -0
- package/contract-data/schema/v1/service/_base.schema.json +31 -0
- package/contract-data/schema/v1/service/ksystem.md +76 -0
- package/contract-data/schema/v1/service/ksystem.schema.json +36 -0
- package/contract-data/schema/v1/service-binding.md +228 -0
- package/contract-data/schema/v1/service-binding.schema.json +51 -0
- package/contract-data/schema/v1/step.md +546 -0
- package/contract-data/schema/v1/step.schema.json +258 -0
- package/contract-data/schema/v1/style-objects.md +183 -0
- package/contract-data/schema/v1/style-objects.schema.json +155 -0
- package/contract-data/spec/catalog.json +406 -0
- package/contract-data/spec/rules.md +400 -0
- package/node_modules/@flextudio/contract-core/contract.mjs +367 -0
- package/node_modules/@flextudio/contract-core/index.mjs +16 -0
- package/node_modules/@flextudio/contract-core/package.json +21 -0
- package/node_modules/@flextudio/contract-core/paths.mjs +72 -0
- package/node_modules/@flextudio/contract-core/schemas.mjs +474 -0
- package/node_modules/@flextudio/contract-core/validators.mjs +2471 -0
- package/node_modules/ajv/.runkit_example.js +23 -0
- package/node_modules/ajv/LICENSE +22 -0
- package/node_modules/ajv/README.md +207 -0
- package/node_modules/ajv/dist/2019.d.ts +19 -0
- package/node_modules/ajv/dist/2019.js +61 -0
- package/node_modules/ajv/dist/2019.js.map +1 -0
- package/node_modules/ajv/dist/2020.d.ts +19 -0
- package/node_modules/ajv/dist/2020.js +55 -0
- package/node_modules/ajv/dist/2020.js.map +1 -0
- package/node_modules/ajv/dist/ajv.d.ts +18 -0
- package/node_modules/ajv/dist/ajv.js +50 -0
- package/node_modules/ajv/dist/ajv.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/code.d.ts +40 -0
- package/node_modules/ajv/dist/compile/codegen/code.js +156 -0
- package/node_modules/ajv/dist/compile/codegen/code.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/index.d.ts +79 -0
- package/node_modules/ajv/dist/compile/codegen/index.js +697 -0
- package/node_modules/ajv/dist/compile/codegen/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/codegen/scope.d.ts +79 -0
- package/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
- package/node_modules/ajv/dist/compile/codegen/scope.js.map +1 -0
- package/node_modules/ajv/dist/compile/errors.d.ts +13 -0
- package/node_modules/ajv/dist/compile/errors.js +123 -0
- package/node_modules/ajv/dist/compile/errors.js.map +1 -0
- package/node_modules/ajv/dist/compile/index.d.ts +80 -0
- package/node_modules/ajv/dist/compile/index.js +242 -0
- package/node_modules/ajv/dist/compile/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/parse.d.ts +4 -0
- package/node_modules/ajv/dist/compile/jtd/parse.js +350 -0
- package/node_modules/ajv/dist/compile/jtd/parse.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.d.ts +4 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.js +236 -0
- package/node_modules/ajv/dist/compile/jtd/serialize.js.map +1 -0
- package/node_modules/ajv/dist/compile/jtd/types.d.ts +6 -0
- package/node_modules/ajv/dist/compile/jtd/types.js +14 -0
- package/node_modules/ajv/dist/compile/jtd/types.js.map +1 -0
- package/node_modules/ajv/dist/compile/names.d.ts +20 -0
- package/node_modules/ajv/dist/compile/names.js +28 -0
- package/node_modules/ajv/dist/compile/names.js.map +1 -0
- package/node_modules/ajv/dist/compile/ref_error.d.ts +6 -0
- package/node_modules/ajv/dist/compile/ref_error.js +12 -0
- package/node_modules/ajv/dist/compile/ref_error.js.map +1 -0
- package/node_modules/ajv/dist/compile/resolve.d.ts +12 -0
- package/node_modules/ajv/dist/compile/resolve.js +155 -0
- package/node_modules/ajv/dist/compile/resolve.js.map +1 -0
- package/node_modules/ajv/dist/compile/rules.d.ts +28 -0
- package/node_modules/ajv/dist/compile/rules.js +26 -0
- package/node_modules/ajv/dist/compile/rules.js.map +1 -0
- package/node_modules/ajv/dist/compile/util.d.ts +40 -0
- package/node_modules/ajv/dist/compile/util.js +178 -0
- package/node_modules/ajv/dist/compile/util.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/applicability.d.ts +6 -0
- package/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
- package/node_modules/ajv/dist/compile/validate/applicability.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.d.ts +4 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
- package/node_modules/ajv/dist/compile/validate/boolSchema.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/dataType.d.ts +17 -0
- package/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
- package/node_modules/ajv/dist/compile/validate/dataType.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/defaults.d.ts +2 -0
- package/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
- package/node_modules/ajv/dist/compile/validate/defaults.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/index.d.ts +42 -0
- package/node_modules/ajv/dist/compile/validate/index.js +520 -0
- package/node_modules/ajv/dist/compile/validate/index.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/keyword.d.ts +8 -0
- package/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
- package/node_modules/ajv/dist/compile/validate/keyword.js.map +1 -0
- package/node_modules/ajv/dist/compile/validate/subschema.d.ts +47 -0
- package/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
- package/node_modules/ajv/dist/compile/validate/subschema.js.map +1 -0
- package/node_modules/ajv/dist/core.d.ts +174 -0
- package/node_modules/ajv/dist/core.js +618 -0
- package/node_modules/ajv/dist/core.js.map +1 -0
- package/node_modules/ajv/dist/jtd.d.ts +47 -0
- package/node_modules/ajv/dist/jtd.js +72 -0
- package/node_modules/ajv/dist/jtd.js.map +1 -0
- package/node_modules/ajv/dist/refs/data.json +13 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.d.ts +2 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js +28 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/index.js.map +1 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/applicator.json +53 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/content.json +17 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/core.json +57 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/format.json +14 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/meta-data.json +37 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +90 -0
- package/node_modules/ajv/dist/refs/json-schema-2019-09/schema.json +39 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.d.ts +2 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/index.js.map +1 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
- package/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
- package/node_modules/ajv/dist/refs/json-schema-draft-06.json +137 -0
- package/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
- package/node_modules/ajv/dist/refs/json-schema-secure.json +88 -0
- package/node_modules/ajv/dist/refs/jtd-schema.d.ts +3 -0
- package/node_modules/ajv/dist/refs/jtd-schema.js +118 -0
- package/node_modules/ajv/dist/refs/jtd-schema.js.map +1 -0
- package/node_modules/ajv/dist/runtime/equal.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/equal.js +7 -0
- package/node_modules/ajv/dist/runtime/equal.js.map +1 -0
- package/node_modules/ajv/dist/runtime/parseJson.d.ts +18 -0
- package/node_modules/ajv/dist/runtime/parseJson.js +185 -0
- package/node_modules/ajv/dist/runtime/parseJson.js.map +1 -0
- package/node_modules/ajv/dist/runtime/quote.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/quote.js +30 -0
- package/node_modules/ajv/dist/runtime/quote.js.map +1 -0
- package/node_modules/ajv/dist/runtime/re2.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/re2.js +6 -0
- package/node_modules/ajv/dist/runtime/re2.js.map +1 -0
- package/node_modules/ajv/dist/runtime/timestamp.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/timestamp.js +42 -0
- package/node_modules/ajv/dist/runtime/timestamp.js.map +1 -0
- package/node_modules/ajv/dist/runtime/ucs2length.d.ts +5 -0
- package/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
- package/node_modules/ajv/dist/runtime/ucs2length.js.map +1 -0
- package/node_modules/ajv/dist/runtime/uri.d.ts +6 -0
- package/node_modules/ajv/dist/runtime/uri.js +6 -0
- package/node_modules/ajv/dist/runtime/uri.js.map +1 -0
- package/node_modules/ajv/dist/runtime/validation_error.d.ts +7 -0
- package/node_modules/ajv/dist/runtime/validation_error.js +11 -0
- package/node_modules/ajv/dist/runtime/validation_error.js.map +1 -0
- package/node_modules/ajv/dist/standalone/index.d.ts +6 -0
- package/node_modules/ajv/dist/standalone/index.js +90 -0
- package/node_modules/ajv/dist/standalone/index.js.map +1 -0
- package/node_modules/ajv/dist/standalone/instance.d.ts +12 -0
- package/node_modules/ajv/dist/standalone/instance.js +35 -0
- package/node_modules/ajv/dist/standalone/instance.js.map +1 -0
- package/node_modules/ajv/dist/types/index.d.ts +183 -0
- package/node_modules/ajv/dist/types/index.js +3 -0
- package/node_modules/ajv/dist/types/index.js.map +1 -0
- package/node_modules/ajv/dist/types/json-schema.d.ts +125 -0
- package/node_modules/ajv/dist/types/json-schema.js +3 -0
- package/node_modules/ajv/dist/types/json-schema.js.map +1 -0
- package/node_modules/ajv/dist/types/jtd-schema.d.ts +174 -0
- package/node_modules/ajv/dist/types/jtd-schema.js +3 -0
- package/node_modules/ajv/dist/types/jtd-schema.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
- package/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
- package/node_modules/ajv/dist/vocabularies/applicator/allOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
- package/node_modules/ajv/dist/vocabularies/applicator/anyOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts +7 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
- package/node_modules/ajv/dist/vocabularies/applicator/contains.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts +21 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependencies.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
- package/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
- package/node_modules/ajv/dist/vocabularies/applicator/if.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.d.ts +13 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
- package/node_modules/ajv/dist/vocabularies/applicator/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
- package/node_modules/ajv/dist/vocabularies/applicator/items2020.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
- package/node_modules/ajv/dist/vocabularies/applicator/not.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
- package/node_modules/ajv/dist/vocabularies/applicator/oneOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
- package/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
- package/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
- package/node_modules/ajv/dist/vocabularies/applicator/properties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
- package/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
- package/node_modules/ajv/dist/vocabularies/applicator/thenElse.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/code.d.ts +17 -0
- package/node_modules/ajv/dist/vocabularies/code.js +131 -0
- package/node_modules/ajv/dist/vocabularies/code.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/id.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
- package/node_modules/ajv/dist/vocabularies/core/id.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
- package/node_modules/ajv/dist/vocabularies/core/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
- package/node_modules/ajv/dist/vocabularies/core/ref.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
- package/node_modules/ajv/dist/vocabularies/discriminator/types.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
- package/node_modules/ajv/dist/vocabularies/draft2020.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/draft7.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
- package/node_modules/ajv/dist/vocabularies/draft7.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
- package/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/errors.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/errors.js +3 -0
- package/node_modules/ajv/dist/vocabularies/errors.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/format/format.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
- package/node_modules/ajv/dist/vocabularies/format/format.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/format/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
- package/node_modules/ajv/dist/vocabularies/format/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js +71 -0
- package/node_modules/ajv/dist/vocabularies/jtd/discriminator.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.js +24 -0
- package/node_modules/ajv/dist/vocabularies/jtd/elements.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.js +43 -0
- package/node_modules/ajv/dist/vocabularies/jtd/enum.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.js +20 -0
- package/node_modules/ajv/dist/vocabularies/jtd/error.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.js +29 -0
- package/node_modules/ajv/dist/vocabularies/jtd/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.js +25 -0
- package/node_modules/ajv/dist/vocabularies/jtd/metadata.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.js +22 -0
- package/node_modules/ajv/dist/vocabularies/jtd/nullable.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js +15 -0
- package/node_modules/ajv/dist/vocabularies/jtd/optionalProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.d.ts +22 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.js +149 -0
- package/node_modules/ajv/dist/vocabularies/jtd/properties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.d.ts +4 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.js +67 -0
- package/node_modules/ajv/dist/vocabularies/jtd/ref.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.d.ts +10 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.js +69 -0
- package/node_modules/ajv/dist/vocabularies/jtd/type.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.js +12 -0
- package/node_modules/ajv/dist/vocabularies/jtd/union.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.js +51 -0
- package/node_modules/ajv/dist/vocabularies/jtd/values.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/metadata.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
- package/node_modules/ajv/dist/vocabularies/metadata.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/next.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/next.js +8 -0
- package/node_modules/ajv/dist/vocabularies/next.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
- package/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.d.ts +6 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
- package/node_modules/ajv/dist/vocabularies/validation/const.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts +5 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
- package/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
- package/node_modules/ajv/dist/vocabularies/validation/enum.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.d.ts +16 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
- package/node_modules/ajv/dist/vocabularies/validation/index.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitContains.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitItems.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitLength.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts +11 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitNumber.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.d.ts +3 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
- package/node_modules/ajv/dist/vocabularies/validation/limitProperties.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
- package/node_modules/ajv/dist/vocabularies/validation/multipleOf.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.js +33 -0
- package/node_modules/ajv/dist/vocabularies/validation/pattern.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.d.ts +8 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
- package/node_modules/ajv/dist/vocabularies/validation/required.js.map +1 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts +9 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
- package/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js.map +1 -0
- package/node_modules/ajv/lib/2019.ts +81 -0
- package/node_modules/ajv/lib/2020.ts +75 -0
- package/node_modules/ajv/lib/ajv.ts +70 -0
- package/node_modules/ajv/lib/compile/codegen/code.ts +169 -0
- package/node_modules/ajv/lib/compile/codegen/index.ts +852 -0
- package/node_modules/ajv/lib/compile/codegen/scope.ts +215 -0
- package/node_modules/ajv/lib/compile/errors.ts +184 -0
- package/node_modules/ajv/lib/compile/index.ts +324 -0
- package/node_modules/ajv/lib/compile/jtd/parse.ts +411 -0
- package/node_modules/ajv/lib/compile/jtd/serialize.ts +277 -0
- package/node_modules/ajv/lib/compile/jtd/types.ts +16 -0
- package/node_modules/ajv/lib/compile/names.ts +27 -0
- package/node_modules/ajv/lib/compile/ref_error.ts +13 -0
- package/node_modules/ajv/lib/compile/resolve.ts +149 -0
- package/node_modules/ajv/lib/compile/rules.ts +50 -0
- package/node_modules/ajv/lib/compile/util.ts +213 -0
- package/node_modules/ajv/lib/compile/validate/applicability.ts +22 -0
- package/node_modules/ajv/lib/compile/validate/boolSchema.ts +47 -0
- package/node_modules/ajv/lib/compile/validate/dataType.ts +230 -0
- package/node_modules/ajv/lib/compile/validate/defaults.ts +32 -0
- package/node_modules/ajv/lib/compile/validate/index.ts +582 -0
- package/node_modules/ajv/lib/compile/validate/keyword.ts +171 -0
- package/node_modules/ajv/lib/compile/validate/subschema.ts +135 -0
- package/node_modules/ajv/lib/core.ts +892 -0
- package/node_modules/ajv/lib/jtd.ts +132 -0
- package/node_modules/ajv/lib/refs/data.json +13 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/index.ts +28 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/applicator.json +53 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/content.json +17 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/core.json +57 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/format.json +14 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/meta-data.json +37 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/meta/validation.json +90 -0
- package/node_modules/ajv/lib/refs/json-schema-2019-09/schema.json +39 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/index.ts +30 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/applicator.json +48 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/content.json +17 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/core.json +51 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/meta-data.json +37 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/meta/validation.json +90 -0
- package/node_modules/ajv/lib/refs/json-schema-2020-12/schema.json +55 -0
- package/node_modules/ajv/lib/refs/json-schema-draft-06.json +137 -0
- package/node_modules/ajv/lib/refs/json-schema-draft-07.json +151 -0
- package/node_modules/ajv/lib/refs/json-schema-secure.json +88 -0
- package/node_modules/ajv/lib/refs/jtd-schema.ts +130 -0
- package/node_modules/ajv/lib/runtime/equal.ts +7 -0
- package/node_modules/ajv/lib/runtime/parseJson.ts +177 -0
- package/node_modules/ajv/lib/runtime/quote.ts +31 -0
- package/node_modules/ajv/lib/runtime/re2.ts +6 -0
- package/node_modules/ajv/lib/runtime/timestamp.ts +46 -0
- package/node_modules/ajv/lib/runtime/ucs2length.ts +20 -0
- package/node_modules/ajv/lib/runtime/uri.ts +6 -0
- package/node_modules/ajv/lib/runtime/validation_error.ts +13 -0
- package/node_modules/ajv/lib/standalone/index.ts +100 -0
- package/node_modules/ajv/lib/standalone/instance.ts +36 -0
- package/node_modules/ajv/lib/types/index.ts +244 -0
- package/node_modules/ajv/lib/types/json-schema.ts +187 -0
- package/node_modules/ajv/lib/types/jtd-schema.ts +273 -0
- package/node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts +56 -0
- package/node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts +118 -0
- package/node_modules/ajv/lib/vocabularies/applicator/allOf.ts +22 -0
- package/node_modules/ajv/lib/vocabularies/applicator/anyOf.ts +14 -0
- package/node_modules/ajv/lib/vocabularies/applicator/contains.ts +109 -0
- package/node_modules/ajv/lib/vocabularies/applicator/dependencies.ts +112 -0
- package/node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts +11 -0
- package/node_modules/ajv/lib/vocabularies/applicator/if.ts +80 -0
- package/node_modules/ajv/lib/vocabularies/applicator/index.ts +53 -0
- package/node_modules/ajv/lib/vocabularies/applicator/items.ts +59 -0
- package/node_modules/ajv/lib/vocabularies/applicator/items2020.ts +36 -0
- package/node_modules/ajv/lib/vocabularies/applicator/not.ts +38 -0
- package/node_modules/ajv/lib/vocabularies/applicator/oneOf.ts +82 -0
- package/node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts +91 -0
- package/node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/applicator/properties.ts +57 -0
- package/node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts +50 -0
- package/node_modules/ajv/lib/vocabularies/applicator/thenElse.ts +13 -0
- package/node_modules/ajv/lib/vocabularies/code.ts +168 -0
- package/node_modules/ajv/lib/vocabularies/core/id.ts +10 -0
- package/node_modules/ajv/lib/vocabularies/core/index.ts +16 -0
- package/node_modules/ajv/lib/vocabularies/core/ref.ts +129 -0
- package/node_modules/ajv/lib/vocabularies/discriminator/index.ts +113 -0
- package/node_modules/ajv/lib/vocabularies/discriminator/types.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/draft2020.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/draft7.ts +17 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts +31 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts +51 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/index.ts +9 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts +14 -0
- package/node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts +10 -0
- package/node_modules/ajv/lib/vocabularies/errors.ts +18 -0
- package/node_modules/ajv/lib/vocabularies/format/format.ts +120 -0
- package/node_modules/ajv/lib/vocabularies/format/index.ts +6 -0
- package/node_modules/ajv/lib/vocabularies/jtd/discriminator.ts +89 -0
- package/node_modules/ajv/lib/vocabularies/jtd/elements.ts +32 -0
- package/node_modules/ajv/lib/vocabularies/jtd/enum.ts +45 -0
- package/node_modules/ajv/lib/vocabularies/jtd/error.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/jtd/index.ts +37 -0
- package/node_modules/ajv/lib/vocabularies/jtd/metadata.ts +24 -0
- package/node_modules/ajv/lib/vocabularies/jtd/nullable.ts +21 -0
- package/node_modules/ajv/lib/vocabularies/jtd/optionalProperties.ts +15 -0
- package/node_modules/ajv/lib/vocabularies/jtd/properties.ts +184 -0
- package/node_modules/ajv/lib/vocabularies/jtd/ref.ts +76 -0
- package/node_modules/ajv/lib/vocabularies/jtd/type.ts +75 -0
- package/node_modules/ajv/lib/vocabularies/jtd/union.ts +12 -0
- package/node_modules/ajv/lib/vocabularies/jtd/values.ts +58 -0
- package/node_modules/ajv/lib/vocabularies/metadata.ts +17 -0
- package/node_modules/ajv/lib/vocabularies/next.ts +8 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/index.ts +7 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts +47 -0
- package/node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts +85 -0
- package/node_modules/ajv/lib/vocabularies/validation/const.ts +28 -0
- package/node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts +23 -0
- package/node_modules/ajv/lib/vocabularies/validation/enum.ts +54 -0
- package/node_modules/ajv/lib/vocabularies/validation/index.ts +49 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitContains.ts +16 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitItems.ts +26 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitLength.ts +30 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitNumber.ts +42 -0
- package/node_modules/ajv/lib/vocabularies/validation/limitProperties.ts +26 -0
- package/node_modules/ajv/lib/vocabularies/validation/multipleOf.ts +34 -0
- package/node_modules/ajv/lib/vocabularies/validation/pattern.ts +39 -0
- package/node_modules/ajv/lib/vocabularies/validation/required.ts +98 -0
- package/node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts +79 -0
- package/node_modules/ajv/package.json +126 -0
- package/node_modules/fast-deep-equal/LICENSE +21 -0
- package/node_modules/fast-deep-equal/README.md +96 -0
- package/node_modules/fast-deep-equal/es6/index.d.ts +2 -0
- package/node_modules/fast-deep-equal/es6/index.js +72 -0
- package/node_modules/fast-deep-equal/es6/react.d.ts +2 -0
- package/node_modules/fast-deep-equal/es6/react.js +79 -0
- package/node_modules/fast-deep-equal/index.d.ts +4 -0
- package/node_modules/fast-deep-equal/index.js +46 -0
- package/node_modules/fast-deep-equal/package.json +61 -0
- package/node_modules/fast-deep-equal/react.d.ts +2 -0
- package/node_modules/fast-deep-equal/react.js +53 -0
- package/node_modules/fast-uri/.gitattributes +2 -0
- package/node_modules/fast-uri/.github/dependabot.yml +13 -0
- package/node_modules/fast-uri/.github/workflows/ci.yml +106 -0
- package/node_modules/fast-uri/.github/workflows/lock-threads.yml +19 -0
- package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +24 -0
- package/node_modules/fast-uri/LICENSE +30 -0
- package/node_modules/fast-uri/README.md +152 -0
- package/node_modules/fast-uri/benchmark/benchmark.mjs +159 -0
- package/node_modules/fast-uri/benchmark/equal.mjs +51 -0
- package/node_modules/fast-uri/benchmark/non-simple-domain.mjs +22 -0
- package/node_modules/fast-uri/benchmark/package.json +17 -0
- package/node_modules/fast-uri/benchmark/string-array-to-hex-stripped.mjs +24 -0
- package/node_modules/fast-uri/benchmark/ws-is-secure.mjs +65 -0
- package/node_modules/fast-uri/eslint.config.js +6 -0
- package/node_modules/fast-uri/index.js +406 -0
- package/node_modules/fast-uri/lib/schemes.js +267 -0
- package/node_modules/fast-uri/lib/utils.js +443 -0
- package/node_modules/fast-uri/package.json +68 -0
- package/node_modules/fast-uri/test/ajv.test.js +43 -0
- package/node_modules/fast-uri/test/equal.test.js +117 -0
- package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +501 -0
- package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +120 -0
- package/node_modules/fast-uri/test/parse.test.js +323 -0
- package/node_modules/fast-uri/test/resolve.test.js +87 -0
- package/node_modules/fast-uri/test/rfc-3986.test.js +90 -0
- package/node_modules/fast-uri/test/security-normalization.test.js +39 -0
- package/node_modules/fast-uri/test/security.test.js +133 -0
- package/node_modules/fast-uri/test/serialize.test.js +151 -0
- package/node_modules/fast-uri/test/uri-js-compatibility.test.js +33 -0
- package/node_modules/fast-uri/test/uri-js.test.js +912 -0
- package/node_modules/fast-uri/test/util.test.js +38 -0
- package/node_modules/fast-uri/tsconfig.json +9 -0
- package/node_modules/fast-uri/types/index.d.ts +60 -0
- package/node_modules/fast-uri/types/index.test-d.ts +17 -0
- package/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
- package/node_modules/json-schema-traverse/.github/FUNDING.yml +2 -0
- package/node_modules/json-schema-traverse/.github/workflows/build.yml +28 -0
- package/node_modules/json-schema-traverse/.github/workflows/publish.yml +27 -0
- package/node_modules/json-schema-traverse/LICENSE +21 -0
- package/node_modules/json-schema-traverse/README.md +95 -0
- package/node_modules/json-schema-traverse/index.d.ts +40 -0
- package/node_modules/json-schema-traverse/index.js +93 -0
- package/node_modules/json-schema-traverse/package.json +43 -0
- package/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
- package/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
- package/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
- package/node_modules/require-from-string/index.js +34 -0
- package/node_modules/require-from-string/license +21 -0
- package/node_modules/require-from-string/package.json +28 -0
- package/node_modules/require-from-string/readme.md +56 -0
- package/package.json +51 -0
- package/scripts/api-call.mjs +59 -0
- package/scripts/auth.mjs +262 -0
- package/scripts/build-skill-payload.mjs +338 -0
- package/scripts/cleanup.mjs +166 -0
- package/scripts/install-paths.mjs +146 -0
- package/scripts/postinstall.mjs +218 -0
- package/scripts/postpack.mjs +43 -0
- package/scripts/prepack.mjs +222 -0
- package/scripts/tty-menu.mjs +100 -0
- package/skill/README.md +55 -0
- package/skill/SKILL.md +138 -0
- package/skill/catalog.json +406 -0
- package/skill/design-rules.md +282 -0
- package/skill/design-system.md +235 -0
- package/skill/docs/SKELETON-SHELL.md +120 -0
- package/skill/docs/bottom-buttons.md +155 -0
- package/skill/docs/control/button.md +147 -0
- package/skill/docs/control/calendar-navigator.md +143 -0
- package/skill/docs/control/calendar.md +128 -0
- package/skill/docs/control/check-box.md +117 -0
- package/skill/docs/control/combo.md +293 -0
- package/skill/docs/control/embed.md +211 -0
- package/skill/docs/control/image-box.md +237 -0
- package/skill/docs/control/input-date.md +175 -0
- package/skill/docs/control/input-file.md +192 -0
- package/skill/docs/control/input-mask.md +89 -0
- package/skill/docs/control/input-number.md +55 -0
- package/skill/docs/control/input-text.md +73 -0
- package/skill/docs/control/label.md +127 -0
- package/skill/docs/control/multi-input-box.md +51 -0
- package/skill/docs/control/radio-box.md +150 -0
- package/skill/docs/control/search.md +163 -0
- package/skill/docs/control/tab.md +240 -0
- package/skill/docs/control/tree.md +278 -0
- package/skill/docs/control.md +264 -0
- package/skill/docs/data-objects.md +278 -0
- package/skill/docs/data-sources.md +215 -0
- package/skill/docs/events.md +467 -0
- package/skill/docs/group.md +146 -0
- package/skill/docs/index.json +125 -0
- package/skill/docs/mockup-data.md +186 -0
- package/skill/docs/node.md +32 -0
- package/skill/docs/scenario.md +112 -0
- package/skill/docs/service/CustomSystem.md +139 -0
- package/skill/docs/service/Firestore.md +125 -0
- package/skill/docs/service/FlexAutoQuery.md +128 -0
- package/skill/docs/service/FlexSQL.md +96 -0
- package/skill/docs/service/Flextudio API.md +161 -0
- package/skill/docs/service/Flextudio.md +87 -0
- package/skill/docs/service/GoogleSheet.md +71 -0
- package/skill/docs/service/README.md +127 -0
- package/skill/docs/service/ksystem.md +76 -0
- package/skill/docs/service-binding.md +228 -0
- package/skill/docs/step.md +546 -0
- package/skill/docs/style-objects.md +183 -0
- package/skill/examples/README.md +147 -0
- package/skill/examples/basic/basic-list-detail.json +2521 -0
- package/skill/examples/basic/delivery-address-popup.json +2175 -0
- package/skill/examples/basic/fixedtop-floating-form.json +1524 -0
- package/skill/examples/basic/search-period-popup.json +1524 -0
- package/skill/examples/design/booking-wizard-3step.json +1335 -0
- package/skill/examples/design/list-detail-form-3step.json +1516 -0
- package/skill/examples/design/list-filter-2step.json +1365 -0
- package/skill/examples/design/list-filter-detail-3step.json +1570 -0
- package/skill/examples/design/result-entry-wizard-4step.json +1861 -0
- package/skill/examples/index.json +150 -0
- package/skill/examples/intent/mock-employee-list.json +54 -0
- package/skill/examples/intent/script-cart-flow.json +96 -0
- package/skill/examples/intent/script-dialog-confirm.json +61 -0
- package/skill/intent-rules.md +552 -0
- package/skill/intent-system.md +118 -0
- package/skill/patterns/atom/badge.json +103 -0
- package/skill/patterns/atom/button.json +111 -0
- package/skill/patterns/atom/checkbox.json +70 -0
- package/skill/patterns/atom/segmented-radio.json +92 -0
- package/skill/patterns/atom/switch.json +57 -0
- package/skill/patterns/index.json +471 -0
- package/skill/patterns/molecule/checklist.json +107 -0
- package/skill/patterns/molecule/input-action.json +355 -0
- package/skill/patterns/molecule/input-button.json +212 -0
- package/skill/patterns/molecule/input-pair.json +284 -0
- package/skill/references/build-sequence.md +55 -0
- package/skill/references/patterns-cheatsheet.md +87 -0
- package/skill/references/spec-evolve/README.md +43 -0
- package/skill/references/spec-evolve/conventions.md +92 -0
- package/skill/references/spec-evolve/data-connection.md +102 -0
- package/skill/references/spec-evolve/intake.md +41 -0
- package/skill/references/spec-evolve/key-roles.md +44 -0
- package/skill/references/spec-evolve/lint.md +27 -0
- package/skill/references/spec-evolve/mockup.md +50 -0
- package/skill/references/spec-evolve/query-screens.md +66 -0
- package/skill/references/spec-evolve/routing.md +43 -0
- package/skill/references/spec-evolve/spec-format.md +76 -0
- package/skill/references/spec-evolve/templates/master-detail.spec.md +97 -0
- package/skill/references/spec-evolve/templates/query-screen.spec.md +96 -0
- package/skill/references/spec-evolve/templates/static-prototype.spec.md +54 -0
- package/skill/references/spec-evolve/templates-index.json +26 -0
- package/skill/rules.md +400 -0
- package/skill/schemas/bottom-buttons.schema.json +134 -0
- package/skill/schemas/control/_base.schema.json +1296 -0
- package/skill/schemas/control/button.schema.json +55 -0
- package/skill/schemas/control/calendar-navigator.schema.json +164 -0
- package/skill/schemas/control/calendar.schema.json +18 -0
- package/skill/schemas/control/check-box.schema.json +41 -0
- package/skill/schemas/control/combo.schema.json +23 -0
- package/skill/schemas/control/embed.schema.json +30 -0
- package/skill/schemas/control/image-box.schema.json +49 -0
- package/skill/schemas/control/input-date.schema.json +27 -0
- package/skill/schemas/control/input-file.schema.json +139 -0
- package/skill/schemas/control/input-mask.schema.json +45 -0
- package/skill/schemas/control/input-number.schema.json +24 -0
- package/skill/schemas/control/input-text.schema.json +24 -0
- package/skill/schemas/control/label.schema.json +113 -0
- package/skill/schemas/control/multi-input-box.schema.json +19 -0
- package/skill/schemas/control/other.schema.json +24 -0
- package/skill/schemas/control/radio-box.schema.json +87 -0
- package/skill/schemas/control/search.schema.json +23 -0
- package/skill/schemas/control/tab.schema.json +112 -0
- package/skill/schemas/control/tree.schema.json +83 -0
- package/skill/schemas/control.schema.json +30 -0
- package/skill/schemas/data-objects.schema.json +161 -0
- package/skill/schemas/data-sources.schema.json +184 -0
- package/skill/schemas/design-system/design.schema.json +496 -0
- package/skill/schemas/events.schema.json +272 -0
- package/skill/schemas/group.schema.json +133 -0
- package/skill/schemas/index.json +362 -0
- package/skill/schemas/naming-objects.schema.json +133 -0
- package/skill/schemas/node.schema.json +24 -0
- package/skill/schemas/patterns/atom/badge.schema.json +44 -0
- package/skill/schemas/patterns/atom/button.schema.json +70 -0
- package/skill/schemas/patterns/atom/checkbox.schema.json +39 -0
- package/skill/schemas/patterns/atom/segmented-radio.schema.json +49 -0
- package/skill/schemas/patterns/atom/switch.schema.json +27 -0
- package/skill/schemas/patterns/molecule/checklist.schema.json +63 -0
- package/skill/schemas/patterns/molecule/input-action.schema.json +251 -0
- package/skill/schemas/patterns/molecule/input-button.schema.json +141 -0
- package/skill/schemas/patterns/molecule/input-pair.schema.json +210 -0
- package/skill/schemas/scenario.schema.json +161 -0
- package/skill/schemas/service/CustomSystem.schema.json +41 -0
- package/skill/schemas/service/Firestore.schema.json +28 -0
- package/skill/schemas/service/FlexAutoQuery.schema.json +35 -0
- package/skill/schemas/service/FlexSQL.schema.json +33 -0
- package/skill/schemas/service/Flextudio API.schema.json +115 -0
- package/skill/schemas/service/Flextudio.schema.json +26 -0
- package/skill/schemas/service/GoogleSheet.schema.json +31 -0
- package/skill/schemas/service/_base.schema.json +31 -0
- package/skill/schemas/service/ksystem.schema.json +36 -0
- package/skill/schemas/service-binding.schema.json +51 -0
- package/skill/schemas/step.schema.json +258 -0
- package/skill/schemas/style-objects.schema.json +155 -0
- package/skill/skill-guides/README.md +50 -0
- package/skill/skill-guides/control-options.md +126 -0
- package/skill/skill-guides/events.md +61 -0
- package/skill/skill-guides/failure-discipline.md +95 -0
- package/skill/skill-guides/index.json +40 -0
- package/skill/skill-guides/prompt-interview.md +92 -0
- package/skill/skill-guides/scripts.md +169 -0
- package/skill/skill-guides/step-navigation.md +98 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "intent.schema.json",
|
|
4
|
+
"title": "intent — runtime short-form 진입점",
|
|
5
|
+
"description": "intent:{<slot>:...} 진입점. 호스트 노드 안에 박혀 있다가 materialize 단계에서 raw Script 본문으로 펼쳐진 뒤 트리에서 제거된다. 활성 슬롯: mock (Phase 2), script (Phase 3 — 6 kind). Panel.* + Collections 는 스튜디오 자동 재생성이라 AI 단에서 카테고리 정의 슬롯 미제공. 진실원본: runtime/v1/intent-system/INTENT.md",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"mock": { "$ref": "#/$defs/mockSlot" },
|
|
9
|
+
"script": { "$ref": "#/$defs/scriptSlot" }
|
|
10
|
+
},
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"$defs": {
|
|
13
|
+
"categoryName": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^Ctg[A-Z][A-Za-z0-9]*$",
|
|
16
|
+
"description": "Ctg 접두 + PascalCase. cross-check [category-name] 과 정렬."
|
|
17
|
+
},
|
|
18
|
+
"fid": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^f_[1-9][0-9]*$",
|
|
21
|
+
"description": "Group Id (f_N 형태)."
|
|
22
|
+
},
|
|
23
|
+
"sectorKey": {
|
|
24
|
+
"$ref": "../../../schema/v1/naming-objects.schema.json#/$defs/ckey",
|
|
25
|
+
"description": "컬렉션키 / 섹터 키 — schema/v1/naming-objects.schema.json $defs.ckey 의 정의 (JS 식별자 + sectorReservedKeys + jsReservedWords 차단) 와 정합. 단 intent walker 는 펼침 시점에 추가로 case-insensitive 검사 (Status / STATUS / status 모두 차단)."
|
|
26
|
+
},
|
|
27
|
+
"sectorObject": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"description": "한 섹터의 필드 맵. 키는 sectorKey 형식, 값은 primitive / 중첩 객체/배열 자유.",
|
|
30
|
+
"propertyNames": { "$ref": "#/$defs/sectorKey" },
|
|
31
|
+
"additionalProperties": true,
|
|
32
|
+
"minProperties": 1
|
|
33
|
+
},
|
|
34
|
+
"mockSlot": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"description": "intent.mock — { '<Cat>': [sectorObject, ...], ... }. Step.Events.Init 의 Action:'Script' 안에만 박을 수 있음 (scope: event-script-init). materialize 가 f.Collection.addSector(...) 라인들로 펼침.",
|
|
37
|
+
"propertyNames": { "$ref": "#/$defs/categoryName" },
|
|
38
|
+
"additionalProperties": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": { "$ref": "#/$defs/sectorObject" }
|
|
41
|
+
},
|
|
42
|
+
"minProperties": 1
|
|
43
|
+
},
|
|
44
|
+
"scriptSlot": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"description": "intent.script — { kind: '<name>', ... kindProps }. Events 안의 Action:'Script' 에서 사용. materialize 가 kind 별 정형 idiom 으로 펼침. 활성 kind: dialog / reloadGroup / clearCategory / deleteActive / updateActive / copyStepValues.",
|
|
47
|
+
"required": ["kind"],
|
|
48
|
+
"properties": {
|
|
49
|
+
"kind": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"enum": ["dialog", "updateActive", "clearCategory", "reloadGroup", "deleteActive", "copyStepValues"]
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"allOf": [
|
|
55
|
+
{ "if": { "properties": { "kind": { "const": "dialog" } } }, "then": { "$ref": "#/$defs/dialogProps" } },
|
|
56
|
+
{ "if": { "properties": { "kind": { "const": "reloadGroup" } } }, "then": { "$ref": "#/$defs/reloadGroupProps" } },
|
|
57
|
+
{ "if": { "properties": { "kind": { "const": "clearCategory" } } }, "then": { "$ref": "#/$defs/clearCategoryProps" } },
|
|
58
|
+
{ "if": { "properties": { "kind": { "const": "deleteActive" } } }, "then": { "$ref": "#/$defs/deleteActiveProps" } },
|
|
59
|
+
{ "if": { "properties": { "kind": { "const": "updateActive" } } }, "then": { "$ref": "#/$defs/updateActiveProps" } },
|
|
60
|
+
{ "if": { "properties": { "kind": { "const": "copyStepValues" } } }, "then": { "$ref": "#/$defs/copyStepValuesProps" } }
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"dialogProps": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"description": "intent.script(dialog) props. f.MessageBox(type).setTitle().setDescription()?.addButton/addBtn().show() 정형으로 1:1 펼침.",
|
|
66
|
+
"required": ["type", "title", "buttons"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"kind": { "const": "dialog" },
|
|
69
|
+
"type": { "enum": ["Alert", "Error", "Completed"], "description": "f.MessageBox(type) 의 type 인자" },
|
|
70
|
+
"title": { "type": "string", "minLength": 1, "description": ".setTitle(...)" },
|
|
71
|
+
"body": { "type": "string", "description": ".setDescription(...) — 옵션, 없으면 호출 생략" },
|
|
72
|
+
"buttons": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"minItems": 1,
|
|
75
|
+
"items": { "$ref": "#/$defs/dialogButton" }
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"additionalProperties": false
|
|
79
|
+
},
|
|
80
|
+
"dialogButton": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"required": ["label"],
|
|
83
|
+
"properties": {
|
|
84
|
+
"label": { "type": "string", "minLength": 1, "description": "버튼 라벨 (1번째 인자)" },
|
|
85
|
+
"event": { "type": "string", "minLength": 1, "description": "scenario.Events 키 — 없으면 null (닫기). 실재성은 [event-ref] cross-check 가 검사." },
|
|
86
|
+
"moveType": {
|
|
87
|
+
"enum": ["None", "Next", "Prev", "Init", "Close", "JumpTo"],
|
|
88
|
+
"description": "있으면 addButton(MOVETYPE_*, ...) 풀 시그니처, 없으면 addBtn(...) 약식"
|
|
89
|
+
},
|
|
90
|
+
"color": { "const": "sub", "description": "addBtn(..., true) 보조 스타일 토글. 다른 값 불가." }
|
|
91
|
+
},
|
|
92
|
+
"additionalProperties": false
|
|
93
|
+
},
|
|
94
|
+
"reloadGroupProps": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"description": "intent.script(reloadGroup) — f.Content(fid).reload() 한 줄.",
|
|
97
|
+
"required": ["fid"],
|
|
98
|
+
"properties": {
|
|
99
|
+
"kind": { "const": "reloadGroup" },
|
|
100
|
+
"fid": { "$ref": "#/$defs/fid" }
|
|
101
|
+
},
|
|
102
|
+
"additionalProperties": false
|
|
103
|
+
},
|
|
104
|
+
"clearCategoryProps": {
|
|
105
|
+
"type": "object",
|
|
106
|
+
"description": "intent.script(clearCategory) — f.Collection.removeSector('all', cat) + 옵션 reload.",
|
|
107
|
+
"required": ["cat"],
|
|
108
|
+
"properties": {
|
|
109
|
+
"kind": { "const": "clearCategory" },
|
|
110
|
+
"cat": { "$ref": "#/$defs/categoryName" },
|
|
111
|
+
"reload": { "$ref": "#/$defs/fid" }
|
|
112
|
+
},
|
|
113
|
+
"additionalProperties": false
|
|
114
|
+
},
|
|
115
|
+
"deleteActiveProps": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"description": "intent.script(deleteActive) — 가드 2단 + cur.delete() + 옵션 reload.",
|
|
118
|
+
"required": ["cat"],
|
|
119
|
+
"properties": {
|
|
120
|
+
"kind": { "const": "deleteActive" },
|
|
121
|
+
"cat": { "$ref": "#/$defs/categoryName" },
|
|
122
|
+
"reload": { "$ref": "#/$defs/fid" }
|
|
123
|
+
},
|
|
124
|
+
"additionalProperties": false
|
|
125
|
+
},
|
|
126
|
+
"updateActiveProps": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"description": "intent.script(updateActive) — 가드 2단 + 다중 필드 직접 대입 + 옵션 reload.",
|
|
129
|
+
"required": ["cat", "set"],
|
|
130
|
+
"properties": {
|
|
131
|
+
"kind": { "const": "updateActive" },
|
|
132
|
+
"cat": { "$ref": "#/$defs/categoryName" },
|
|
133
|
+
"set": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"description": "{ <fieldKey>: <value>, ... } — 1개 이상. value 는 primitive / 중첩 객체/배열.",
|
|
136
|
+
"propertyNames": { "$ref": "#/$defs/sectorKey" },
|
|
137
|
+
"additionalProperties": true,
|
|
138
|
+
"minProperties": 1
|
|
139
|
+
},
|
|
140
|
+
"reload": { "$ref": "#/$defs/fid" }
|
|
141
|
+
},
|
|
142
|
+
"additionalProperties": false
|
|
143
|
+
},
|
|
144
|
+
"copyStepValuesProps": {
|
|
145
|
+
"type": "object",
|
|
146
|
+
"description": "intent.script(copyStepValues) — Step 간 활성 섹터 필드 1대1 매핑. 두 카테고리의 활성 섹터 가드 4단 + 매핑 라인 N + 옵션 reload. {=Field} 토큰 raw 침투를 short-form 으로 흡수 (병목 2-a).",
|
|
147
|
+
"required": ["from", "to", "map"],
|
|
148
|
+
"properties": {
|
|
149
|
+
"kind": { "const": "copyStepValues" },
|
|
150
|
+
"from": { "$ref": "#/$defs/categoryName", "description": "원본 카테고리 (이전 Step 에서 활성 섹터가 살아있다고 가정)." },
|
|
151
|
+
"to": { "$ref": "#/$defs/categoryName", "description": "대상 카테고리 (현재 Step 의 표시/요약 영역)." },
|
|
152
|
+
"map": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"description": "{ '<srcKey>': '<dstKey>', ... } — 1대1 매핑. 값은 대상 필드 키 문자열. 1개 이상.",
|
|
155
|
+
"propertyNames": { "$ref": "#/$defs/sectorKey" },
|
|
156
|
+
"additionalProperties": { "$ref": "#/$defs/sectorKey" },
|
|
157
|
+
"minProperties": 1
|
|
158
|
+
},
|
|
159
|
+
"reload": { "$ref": "#/$defs/fid" }
|
|
160
|
+
},
|
|
161
|
+
"additionalProperties": false
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// runtime/v1/intent-system/kinds/_base.mjs
|
|
2
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
3
|
+
// 5+ script kind 가 공유하는 가드 / 직렬화 / 예약어 enum.
|
|
4
|
+
//
|
|
5
|
+
// 예약어 진실원본: schema/v1/naming-objects.schema.json
|
|
6
|
+
// - sectorReservedKeys (시스템 게터: _SUID, _mSUID, status, isActive, ...)
|
|
7
|
+
// - jsReservedWords (JS 예약어 + 빌트인: for, class, Object, prototype, ...)
|
|
8
|
+
//
|
|
9
|
+
// 본 모듈은 위 enum 을 readFileSync 로 가져와 intent 펼침 시점에 case-insensitive
|
|
10
|
+
// 차단 검사를 한다. case-insensitive 강화는 schema 보다 한 단계 더 엄격 —
|
|
11
|
+
// 사용자가 `Status` / `STATUS` 같은 변종으로 시스템 키와 충돌하는 ckey 를
|
|
12
|
+
// 생성하지 못하도록 진입 전 차단.
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
|
|
15
|
+
import { readFileSync } from "node:fs";
|
|
16
|
+
import { dirname, join } from "node:path";
|
|
17
|
+
import { fileURLToPath } from "node:url";
|
|
18
|
+
|
|
19
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
20
|
+
const NAMING_SCHEMA_PATH = join(
|
|
21
|
+
__dirname,
|
|
22
|
+
"..",
|
|
23
|
+
"..",
|
|
24
|
+
"..",
|
|
25
|
+
"..",
|
|
26
|
+
"schema",
|
|
27
|
+
"v1",
|
|
28
|
+
"naming-objects.schema.json",
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
const _namingSchema = JSON.parse(readFileSync(NAMING_SCHEMA_PATH, "utf-8"));
|
|
32
|
+
|
|
33
|
+
/** 시스템 게터 / Sector 인스턴스 속성 충돌 — 진실원본 enum (15개). */
|
|
34
|
+
export const SECTOR_RESERVED_KEYS = Object.freeze([
|
|
35
|
+
...(_namingSchema.$defs?.sectorReservedKeys?.enum ?? []),
|
|
36
|
+
]);
|
|
37
|
+
|
|
38
|
+
/** JS 예약어 + 빌트인 / 글로벌 — 진실원본 enum (50+개). */
|
|
39
|
+
export const JS_RESERVED_WORDS = Object.freeze([
|
|
40
|
+
...(_namingSchema.$defs?.jsReservedWords?.enum ?? []),
|
|
41
|
+
]);
|
|
42
|
+
|
|
43
|
+
const _RESERVED_LOWER = new Set(
|
|
44
|
+
[...SECTOR_RESERVED_KEYS, ...JS_RESERVED_WORDS].map((s) => s.toLowerCase()),
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 컬렉션키 / 섹터 키 / set 키의 예약어 충돌 검사.
|
|
49
|
+
*
|
|
50
|
+
* **case-insensitive** — `Status` / `STATUS` / `status` 모두 차단. 사용자가
|
|
51
|
+
* 시스템 키워드의 변종으로 ckey 를 생성하지 못하도록.
|
|
52
|
+
*
|
|
53
|
+
* @returns {{ ok: true } | { ok: false, reason: 'sector-getter'|'js-reserved', match: string }}
|
|
54
|
+
*/
|
|
55
|
+
export function checkReservedCkey(name) {
|
|
56
|
+
const lower = String(name).toLowerCase();
|
|
57
|
+
if (!_RESERVED_LOWER.has(lower)) return { ok: true };
|
|
58
|
+
// 어떤 enum 에 매치되는지 보고 사용자에게 원인 안내.
|
|
59
|
+
const sectorMatch = SECTOR_RESERVED_KEYS.find((s) => s.toLowerCase() === lower);
|
|
60
|
+
if (sectorMatch) return { ok: false, reason: "sector-getter", match: sectorMatch };
|
|
61
|
+
const jsMatch = JS_RESERVED_WORDS.find((s) => s.toLowerCase() === lower);
|
|
62
|
+
return { ok: false, reason: "js-reserved", match: jsMatch ?? lower };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
66
|
+
// 형식 패턴 — schema 의 ckey / categoryName 과 정합.
|
|
67
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
/** 카테고리명 컨벤션 — `Ctg` 접두 + PascalCase. intent 측 strict 적용. */
|
|
70
|
+
export const CATEGORY_NAME_RE = /^Ctg[A-Z][A-Za-z0-9]*$/;
|
|
71
|
+
|
|
72
|
+
/** Group / Control fid — `f_숫자`. */
|
|
73
|
+
export const FID_RE = /^f_[1-9][0-9]*$/;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* 컬렉션키 / 섹터 키 형식 — JS 식별자 (schema 의 ckey 패턴과 정합).
|
|
77
|
+
* `_` 시작 허용 — 진짜 예약어 검사는 `checkReservedCkey` 에 위임.
|
|
78
|
+
*/
|
|
79
|
+
export const SECTOR_KEY_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
80
|
+
|
|
81
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
82
|
+
// JS 직렬화 — kind 별 펼침 함수가 공유.
|
|
83
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
84
|
+
|
|
85
|
+
/** 작은따옴표 + 백슬래시/작은따옴표/개행 이스케이프. f_messagebox.md 와 동일 형식. */
|
|
86
|
+
export function jsString(s) {
|
|
87
|
+
return `'${String(s)
|
|
88
|
+
.replace(/\\/g, "\\\\")
|
|
89
|
+
.replace(/'/g, "\\'")
|
|
90
|
+
.replace(/\n/g, "\\n")
|
|
91
|
+
.replace(/\r/g, "\\r")}'`;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** 임의 값 → JS 리터럴. string→jsString / number·boolean·null→그대로 / object·array→JSON.stringify. */
|
|
95
|
+
export function jsValue(v) {
|
|
96
|
+
if (v == null) return v === undefined ? "undefined" : "null";
|
|
97
|
+
if (typeof v === "string") return jsString(v);
|
|
98
|
+
if (typeof v === "number" || typeof v === "boolean") return String(v);
|
|
99
|
+
if (typeof v === "object") return JSON.stringify(v);
|
|
100
|
+
return JSON.stringify(v);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
104
|
+
// 공통 에러 빌더 — 일관된 phase 명명을 위한 헬퍼.
|
|
105
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
106
|
+
|
|
107
|
+
/** ckey/섹터키/set 키의 형식+예약어 검사. 한 줄로 호출 후 errors 누적. */
|
|
108
|
+
export function validateKey(name, opts) {
|
|
109
|
+
const { path, errors, kindLabel, kindPhasePrefix } = opts;
|
|
110
|
+
if (!SECTOR_KEY_RE.test(name)) {
|
|
111
|
+
errors.push({
|
|
112
|
+
kind: "intent",
|
|
113
|
+
phase: `${kindPhasePrefix}-format`,
|
|
114
|
+
path,
|
|
115
|
+
key: name,
|
|
116
|
+
message: `${kindLabel} 키 '${name}' 형식 위반 — JS 식별자 (영문/언더스코어 시작 + 영숫자/언더스코어).`,
|
|
117
|
+
});
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
const r = checkReservedCkey(name);
|
|
121
|
+
if (!r.ok) {
|
|
122
|
+
errors.push({
|
|
123
|
+
kind: "intent",
|
|
124
|
+
phase: `${kindPhasePrefix}-reserved`,
|
|
125
|
+
path,
|
|
126
|
+
key: name,
|
|
127
|
+
reservedReason: r.reason,
|
|
128
|
+
matchedAgainst: r.match,
|
|
129
|
+
message:
|
|
130
|
+
r.reason === "sector-getter"
|
|
131
|
+
? `${kindLabel} 키 '${name}' 가 Sector 시스템 게터 '${r.match}' 와 충돌 (case-insensitive). setter 가 동작하지 않음. 다른 이름 사용. 진실원본: schema/v1/naming-objects.schema.json $defs.sectorReservedKeys.`
|
|
132
|
+
: `${kindLabel} 키 '${name}' 가 JS 예약어/빌트인 '${r.match}' 와 충돌 (case-insensitive). 점 표기법 (\`_c.Cat.<key>\`) 접근 시 빌트인이 우선되어 동작이 깨짐. 다른 이름 사용. 진실원본: schema/v1/naming-objects.schema.json $defs.jsReservedWords.`,
|
|
133
|
+
});
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// kinds/clearCategory.mjs — f.Collection.removeSector('all', cat) + 옵션 reload
|
|
2
|
+
|
|
3
|
+
import { CATEGORY_NAME_RE, FID_RE, jsString } from "./_base.mjs";
|
|
4
|
+
|
|
5
|
+
export const meta = Object.freeze({
|
|
6
|
+
name: "clearCategory",
|
|
7
|
+
allowedScopes: null,
|
|
8
|
+
summary: "카테고리 비우기 — f.Collection.removeSector('all', cat) + 옵션 reload",
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export default function expand(props, scopePath) {
|
|
12
|
+
const errors = [];
|
|
13
|
+
const { cat, reload } = props;
|
|
14
|
+
if (!CATEGORY_NAME_RE.test(cat || "")) {
|
|
15
|
+
errors.push({
|
|
16
|
+
kind: "intent",
|
|
17
|
+
phase: "clearCategory-cat-format",
|
|
18
|
+
path: `${scopePath}.cat`,
|
|
19
|
+
message: `intent.script(clearCategory).cat 형식 위반 — 'Ctg' 접두 + PascalCase. 받은 값: ${JSON.stringify(cat)}.`,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
if (reload != null && !FID_RE.test(reload)) {
|
|
23
|
+
errors.push({
|
|
24
|
+
kind: "intent",
|
|
25
|
+
phase: "clearCategory-reload-format",
|
|
26
|
+
path: `${scopePath}.reload`,
|
|
27
|
+
message: `intent.script(clearCategory).reload 는 'f_N' 형태 (옵션). 받은 값: ${JSON.stringify(reload)}.`,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
if (errors.length > 0) return { script: "", errors };
|
|
31
|
+
|
|
32
|
+
const lines = [`f.Collection.removeSector('all', ${jsString(cat)})`];
|
|
33
|
+
if (reload) lines.push(`f.Content(${jsString(reload)}).reload()`);
|
|
34
|
+
return { script: lines.join("\n"), errors: [] };
|
|
35
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// kinds/copyStepValues.mjs — Step 간 활성 섹터 필드 1대1 매핑.
|
|
2
|
+
//
|
|
3
|
+
// 병목 2-a 흡수 — `{=Field}` 토큰을 script 자리에 박는 raw 사고를 short-form 으로 차단.
|
|
4
|
+
// from / to 두 카테고리의 활성 섹터 가드 4단 + dst.<dstKey> = src.<srcKey> 라인 N + 옵션 reload.
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
CATEGORY_NAME_RE,
|
|
8
|
+
FID_RE,
|
|
9
|
+
jsString,
|
|
10
|
+
validateKey,
|
|
11
|
+
} from "./_base.mjs";
|
|
12
|
+
|
|
13
|
+
export const meta = Object.freeze({
|
|
14
|
+
name: "copyStepValues",
|
|
15
|
+
allowedScopes: null,
|
|
16
|
+
summary: "Step 간 활성 섹터 필드 1대1 매핑 — 가드 4단 + 대입 N + 옵션 reload",
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export default function expand(props, scopePath) {
|
|
20
|
+
const errors = [];
|
|
21
|
+
const { from, to, map, reload } = props;
|
|
22
|
+
|
|
23
|
+
if (!CATEGORY_NAME_RE.test(from || "")) {
|
|
24
|
+
errors.push({
|
|
25
|
+
kind: "intent",
|
|
26
|
+
phase: "copyStepValues-from-format",
|
|
27
|
+
path: `${scopePath}.from`,
|
|
28
|
+
message: `intent.script(copyStepValues).from 형식 위반 — 'Ctg' 접두 + PascalCase.`,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (!CATEGORY_NAME_RE.test(to || "")) {
|
|
32
|
+
errors.push({
|
|
33
|
+
kind: "intent",
|
|
34
|
+
phase: "copyStepValues-to-format",
|
|
35
|
+
path: `${scopePath}.to`,
|
|
36
|
+
message: `intent.script(copyStepValues).to 형식 위반 — 'Ctg' 접두 + PascalCase.`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!map || typeof map !== "object" || Array.isArray(map)) {
|
|
40
|
+
errors.push({
|
|
41
|
+
kind: "intent",
|
|
42
|
+
phase: "copyStepValues-map-shape",
|
|
43
|
+
path: `${scopePath}.map`,
|
|
44
|
+
message: `intent.script(copyStepValues).map 은 { srcKey: dstKey, ... } 객체 필수.`,
|
|
45
|
+
});
|
|
46
|
+
} else if (Object.keys(map).length === 0) {
|
|
47
|
+
errors.push({
|
|
48
|
+
kind: "intent",
|
|
49
|
+
phase: "copyStepValues-map-empty",
|
|
50
|
+
path: `${scopePath}.map`,
|
|
51
|
+
message: `intent.script(copyStepValues).map 은 1개 이상의 매핑 필수.`,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (reload != null && !FID_RE.test(reload)) {
|
|
55
|
+
errors.push({
|
|
56
|
+
kind: "intent",
|
|
57
|
+
phase: "copyStepValues-reload-format",
|
|
58
|
+
path: `${scopePath}.reload`,
|
|
59
|
+
message: `intent.script(copyStepValues).reload 는 'f_N' 형태 (옵션).`,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (errors.length > 0) return { script: "", errors };
|
|
63
|
+
|
|
64
|
+
for (const [src, dst] of Object.entries(map)) {
|
|
65
|
+
validateKey(src, {
|
|
66
|
+
path: `${scopePath}.map.${src}`,
|
|
67
|
+
errors,
|
|
68
|
+
kindLabel: "intent.script(copyStepValues).map(src)",
|
|
69
|
+
kindPhasePrefix: "copyStepValues-map-src-key",
|
|
70
|
+
});
|
|
71
|
+
if (typeof dst !== "string") {
|
|
72
|
+
errors.push({
|
|
73
|
+
kind: "intent",
|
|
74
|
+
phase: "copyStepValues-map-dst-shape",
|
|
75
|
+
path: `${scopePath}.map.${src}`,
|
|
76
|
+
message: `intent.script(copyStepValues).map['${src}'] 값은 대상 키 문자열이어야 함.`,
|
|
77
|
+
});
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
validateKey(dst, {
|
|
81
|
+
path: `${scopePath}.map.${src}`,
|
|
82
|
+
errors,
|
|
83
|
+
kindLabel: "intent.script(copyStepValues).map(dst)",
|
|
84
|
+
kindPhasePrefix: "copyStepValues-map-dst-key",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (errors.length > 0) return { script: "", errors };
|
|
88
|
+
|
|
89
|
+
const lines = [
|
|
90
|
+
`if (!_c.${from} || !_c.${to}) return;`,
|
|
91
|
+
`const src = _c.${from}.activeSector;`,
|
|
92
|
+
`const dst = _c.${to}.activeSector;`,
|
|
93
|
+
`if (!src || !dst) return;`,
|
|
94
|
+
];
|
|
95
|
+
for (const [src, dst] of Object.entries(map)) {
|
|
96
|
+
lines.push(`dst.${dst} = src.${src};`);
|
|
97
|
+
}
|
|
98
|
+
if (reload) lines.push(`f.Content(${jsString(reload)}).reload();`);
|
|
99
|
+
return { script: lines.join("\n"), errors: [] };
|
|
100
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// kinds/deleteActive.mjs — 가드 2단 + cur.release() + 옵션 reload (scripts.md §C)
|
|
2
|
+
//
|
|
3
|
+
// ★ cur.delete() 가 아니라 cur.release() — delete() 는 added 가 아닌 섹터를
|
|
4
|
+
// deleted 상태로 컬렉션에 남긴다(백엔드 동기화용 표시). 생성 시나리오는
|
|
5
|
+
// 서버 동기화가 없으므로 잔존 deleted 섹터가 집계/반복 루프를 오염시킨다 —
|
|
6
|
+
// 완전삭제 release() 가 정본 (runtime/v1/collection/sector.md §4-4).
|
|
7
|
+
|
|
8
|
+
import { CATEGORY_NAME_RE, FID_RE, jsString } from "./_base.mjs";
|
|
9
|
+
|
|
10
|
+
export const meta = Object.freeze({
|
|
11
|
+
name: "deleteActive",
|
|
12
|
+
allowedScopes: null,
|
|
13
|
+
summary: "활성 섹터 완전삭제 — 가드 2단 + cur.release() + 옵션 reload",
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export default function expand(props, scopePath) {
|
|
17
|
+
const errors = [];
|
|
18
|
+
const { cat, reload } = props;
|
|
19
|
+
if (!CATEGORY_NAME_RE.test(cat || "")) {
|
|
20
|
+
errors.push({
|
|
21
|
+
kind: "intent",
|
|
22
|
+
phase: "deleteActive-cat-format",
|
|
23
|
+
path: `${scopePath}.cat`,
|
|
24
|
+
message: `intent.script(deleteActive).cat 형식 위반 — 'Ctg' 접두 + PascalCase.`,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (reload != null && !FID_RE.test(reload)) {
|
|
28
|
+
errors.push({
|
|
29
|
+
kind: "intent",
|
|
30
|
+
phase: "deleteActive-reload-format",
|
|
31
|
+
path: `${scopePath}.reload`,
|
|
32
|
+
message: `intent.script(deleteActive).reload 는 'f_N' 형태 (옵션).`,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (errors.length > 0) return { script: "", errors };
|
|
36
|
+
|
|
37
|
+
const lines = [
|
|
38
|
+
`if (!_c.${cat}) return;`,
|
|
39
|
+
`const cur = _c.${cat}.activeSector;`,
|
|
40
|
+
`if (!cur) return;`,
|
|
41
|
+
`cur.release();`,
|
|
42
|
+
];
|
|
43
|
+
if (reload) lines.push(`f.Content(${jsString(reload)}).reload();`);
|
|
44
|
+
return { script: lines.join("\n"), errors: [] };
|
|
45
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// kinds/dialog.mjs — f.MessageBox(...) 정형 패턴 펼침
|
|
2
|
+
//
|
|
3
|
+
// 입력 props: { kind, type, title, body?, buttons:[{label, event?, moveType?, color?}] }
|
|
4
|
+
// 출력 script: f.MessageBox(type).setTitle().setDescription()?.addButton/addBtn(...).show()
|
|
5
|
+
//
|
|
6
|
+
// 진실원본: runtime/v1/script/f_messagebox.md (메서드 시그니처 / 종결자 .show())
|
|
7
|
+
|
|
8
|
+
import { jsString } from "./_base.mjs";
|
|
9
|
+
|
|
10
|
+
export const meta = Object.freeze({
|
|
11
|
+
name: "dialog",
|
|
12
|
+
allowedScopes: null, // 슬롯의 allowedScopes 를 따름 (event-script / event-script-init)
|
|
13
|
+
summary: "모달 다이얼로그 — f.MessageBox(type).setTitle().setDescription()?.addBtn/addButton(...).show()",
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const TYPE_ENUM = new Set(["Alert", "Error", "Completed"]);
|
|
17
|
+
const MOVE_TYPE_ENUM = new Set(["None", "Next", "Prev", "Init", "Close", "JumpTo"]);
|
|
18
|
+
|
|
19
|
+
export default function expand(props, scopePath) {
|
|
20
|
+
const errors = [];
|
|
21
|
+
const { type, title, body, buttons } = props;
|
|
22
|
+
|
|
23
|
+
if (!TYPE_ENUM.has(type)) {
|
|
24
|
+
errors.push({
|
|
25
|
+
kind: "intent",
|
|
26
|
+
phase: "dialog-type-enum",
|
|
27
|
+
path: `${scopePath}.type`,
|
|
28
|
+
message: `intent.script(dialog).type '${type}' 미정의 — 허용: ${[...TYPE_ENUM].join(" / ")}.`,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (typeof title !== "string" || title === "") {
|
|
32
|
+
errors.push({
|
|
33
|
+
kind: "intent",
|
|
34
|
+
phase: "dialog-title-required",
|
|
35
|
+
path: `${scopePath}.title`,
|
|
36
|
+
message: `intent.script(dialog).title 필수 — 비어있지 않은 문자열.`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (!Array.isArray(buttons) || buttons.length === 0) {
|
|
40
|
+
errors.push({
|
|
41
|
+
kind: "intent",
|
|
42
|
+
phase: "dialog-buttons-empty",
|
|
43
|
+
path: `${scopePath}.buttons`,
|
|
44
|
+
message: `intent.script(dialog).buttons 필수 — 1개 이상의 버튼 배열.`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
if (body != null && typeof body !== "string") {
|
|
48
|
+
errors.push({
|
|
49
|
+
kind: "intent",
|
|
50
|
+
phase: "dialog-body-type",
|
|
51
|
+
path: `${scopePath}.body`,
|
|
52
|
+
message: `intent.script(dialog).body 는 문자열이어야 함 (옵션).`,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (errors.length > 0) return { script: "", errors };
|
|
56
|
+
|
|
57
|
+
const btnParts = [];
|
|
58
|
+
for (let i = 0; i < buttons.length; i++) {
|
|
59
|
+
const btn = buttons[i];
|
|
60
|
+
const btnPath = `${scopePath}.buttons[${i}]`;
|
|
61
|
+
if (!btn || typeof btn !== "object" || Array.isArray(btn)) {
|
|
62
|
+
errors.push({
|
|
63
|
+
kind: "intent",
|
|
64
|
+
phase: "dialog-button-shape",
|
|
65
|
+
path: btnPath,
|
|
66
|
+
message: `버튼 항목은 객체여야 함 ({ label, event?, moveType?, color? }).`,
|
|
67
|
+
});
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (typeof btn.label !== "string" || btn.label === "") {
|
|
71
|
+
errors.push({
|
|
72
|
+
kind: "intent",
|
|
73
|
+
phase: "dialog-button-label",
|
|
74
|
+
path: `${btnPath}.label`,
|
|
75
|
+
message: `버튼 label 은 비어있지 않은 문자열 필수.`,
|
|
76
|
+
});
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (btn.event != null && (typeof btn.event !== "string" || btn.event === "")) {
|
|
80
|
+
errors.push({
|
|
81
|
+
kind: "intent",
|
|
82
|
+
phase: "dialog-button-event-format",
|
|
83
|
+
path: `${btnPath}.event`,
|
|
84
|
+
message: `버튼 event 는 비어있지 않은 문자열 (scenario.Events 키). 실재성은 [event-ref] cross-check 가 검사.`,
|
|
85
|
+
});
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (btn.moveType != null && !MOVE_TYPE_ENUM.has(btn.moveType)) {
|
|
89
|
+
errors.push({
|
|
90
|
+
kind: "intent",
|
|
91
|
+
phase: "dialog-button-moveType-enum",
|
|
92
|
+
path: `${btnPath}.moveType`,
|
|
93
|
+
message: `버튼 moveType '${btn.moveType}' 미정의 — 허용: ${[...MOVE_TYPE_ENUM].join(" / ")}.`,
|
|
94
|
+
});
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (btn.color != null && btn.color !== "sub") {
|
|
98
|
+
errors.push({
|
|
99
|
+
kind: "intent",
|
|
100
|
+
phase: "dialog-button-color-enum",
|
|
101
|
+
path: `${btnPath}.color`,
|
|
102
|
+
message: `버튼 color 는 'sub' 만 허용 (보조 스타일).`,
|
|
103
|
+
});
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const labelStr = jsString(btn.label);
|
|
108
|
+
const eventArg = btn.event ? jsString(btn.event) : "null";
|
|
109
|
+
if (btn.moveType) {
|
|
110
|
+
btnParts.push(`.addButton(MOVETYPE_${btn.moveType.toUpperCase()}, ${labelStr}, ${eventArg})`);
|
|
111
|
+
} else if (btn.color === "sub") {
|
|
112
|
+
btnParts.push(`.addBtn(${labelStr}, ${eventArg}, true)`);
|
|
113
|
+
} else {
|
|
114
|
+
btnParts.push(`.addBtn(${labelStr}, ${eventArg})`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (errors.length > 0) return { script: "", errors };
|
|
118
|
+
|
|
119
|
+
const parts = [`f.MessageBox(${jsString(type)})`, `.setTitle(${jsString(title)})`];
|
|
120
|
+
if (typeof body === "string" && body !== "") {
|
|
121
|
+
parts.push(`.setDescription(${jsString(body)})`);
|
|
122
|
+
}
|
|
123
|
+
for (const p of btnParts) parts.push(p);
|
|
124
|
+
parts.push(`.show()`);
|
|
125
|
+
|
|
126
|
+
return { script: parts.join(""), errors: [] };
|
|
127
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// kinds/reloadGroup.mjs — f.Content(fid).reload()
|
|
2
|
+
//
|
|
3
|
+
// 입력 props: { kind, fid }
|
|
4
|
+
// 출력 script: f.Content('<fid>').reload()
|
|
5
|
+
|
|
6
|
+
import { FID_RE, jsString } from "./_base.mjs";
|
|
7
|
+
|
|
8
|
+
export const meta = Object.freeze({
|
|
9
|
+
name: "reloadGroup",
|
|
10
|
+
allowedScopes: null,
|
|
11
|
+
summary: "그룹 부분 재렌더 — f.Content(fid).reload()",
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export default function expand(props, scopePath) {
|
|
15
|
+
const { fid } = props;
|
|
16
|
+
if (typeof fid !== "string" || !FID_RE.test(fid)) {
|
|
17
|
+
return {
|
|
18
|
+
script: "",
|
|
19
|
+
errors: [{
|
|
20
|
+
kind: "intent",
|
|
21
|
+
phase: "reloadGroup-fid-format",
|
|
22
|
+
path: `${scopePath}.fid`,
|
|
23
|
+
message: `intent.script(reloadGroup).fid 는 'f_N' 형태 (예: f_3). 받은 값: ${JSON.stringify(fid)}.`,
|
|
24
|
+
}],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return { script: `f.Content(${jsString(fid)}).reload()`, errors: [] };
|
|
28
|
+
}
|