@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,546 @@
|
|
|
1
|
+
# Step
|
|
2
|
+
|
|
3
|
+
화면 단위 노드. `Scenario.Steps[StepId]` 의 값. `StepType` + `StepDialogType` 분기.
|
|
4
|
+
|
|
5
|
+
## 식별
|
|
6
|
+
|
|
7
|
+
- 위치: `Scenario.Steps[StepId]` 의 **키**
|
|
8
|
+
- StepId 형식: `^Step[1-9][0-9]*$` 예: `Step1`, `Step2`, `Step10`. **0 시작 불가, 영문/언더스코어 불가, `Step0` 도 불가** (1부터 시작).
|
|
9
|
+
- discriminator: `StepType` (`StepView` | `StepSub`) + `StepDialogType` (StepView 변종)
|
|
10
|
+
|
|
11
|
+
## StepType / StepDialogType 매트릭스
|
|
12
|
+
|
|
13
|
+
| StepType | StepDialogType | 의미 |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| (누락) | — | 런타임이 `StepView` 로 처리. AI 생성 시는 명시 권장. |
|
|
16
|
+
| `StepView` | `""` | 일반 풀스크린 화면 |
|
|
17
|
+
| `StepView` | `"SlideUp"` | 바텀시트 슬라이드업 |
|
|
18
|
+
| `StepView` | `"PopUp"` | 중앙 팝업 (Width/Height 권장) |
|
|
19
|
+
| `StepSub` | — | 다른 시나리오 임베드. **개발 모드에서 설정**. UseBackButton/UseBottomButton/UseEvents 가 자동 false 강제됨. |
|
|
20
|
+
|
|
21
|
+
## 공통 필드
|
|
22
|
+
|
|
23
|
+
| 키 | 타입 | 비고 |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| `StepType` | enum | 🔴 필수 |
|
|
26
|
+
| `StepDialogType` | enum `""\|"SlideUp"\|"PopUp"` | StepView 변종 |
|
|
27
|
+
| `StepName` | string | 내부 표시명 |
|
|
28
|
+
| `StepTitle` | string | 상단 헤더 타이틀 (UseStepHeader=true 일 때 표시, 다국어 `{{}}` 권장) |
|
|
29
|
+
| `UseStepHeader` | boolean | 상단 헤더 사용 토글 |
|
|
30
|
+
| `Contents` | Group[] | 메인 (스크롤 영역) |
|
|
31
|
+
| `FixedContentsTop` | Group[] | 탭/검색/필터 전용 |
|
|
32
|
+
| `FixedContentsBottom` | Group[] | 액션바 전용 |
|
|
33
|
+
| `Padding` | spacing | `Btm` 키 사용. **키 누락 시 런타임 기본값 `padding: .5rem 1.25rem 0 1.25rem` 적용** |
|
|
34
|
+
| `BgStyle` | bgStyle | 배경 색/이미지. 토글 OFF 시 키 자체 누락 |
|
|
35
|
+
| `UseBackButton` | boolean | 뒤로가기 토글 (디자인/데이터 탭 공통) |
|
|
36
|
+
| `BackButton` | object | `{ Next: "None"\|StepId, IsRestored: bool }`. UseBackButton=true 시 동반 등장 |
|
|
37
|
+
| `Next` | string[] | StepId 배열, **forward-only** |
|
|
38
|
+
| `UseBottomButton` | boolean | |
|
|
39
|
+
| `StepButton` | object | 하단 버튼 영역 스타일 묶음 |
|
|
40
|
+
| `BottomButtons` | BottomButton[] | 하단 버튼 채널 |
|
|
41
|
+
| `UseEvents` | boolean | |
|
|
42
|
+
| `Events` | object \| `[]` | UseEvents=true→object, false→`[]`. **누락 금지** |
|
|
43
|
+
| `StepRow`, `StepCol` | number | 그리드 좌표 |
|
|
44
|
+
|
|
45
|
+
> **타입 정책**: 모든 boolean/number는 strict 타입 (true/false/숫자). 일부 디버그/직렬화 출력에서 `"true"`/`"1"` 처럼 문자열로 보일 수 있으나 메타 안 실제 값은 boolean/number. AI 생성 시 반드시 strict 타입으로 작성.
|
|
46
|
+
|
|
47
|
+
## 디자인 탭 ↔ 메타 매핑
|
|
48
|
+
|
|
49
|
+
스튜디오 디자인 탭의 각 항목이 어떤 메타 키로 저장되는지:
|
|
50
|
+
|
|
51
|
+
| 디자인 탭 UI | 메타 키 | 비고 |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| 이동할 스텝 (읽기 전용) | `Steps` 객체의 키 자체 | StepId 표시 |
|
|
54
|
+
| 스텝명 | `StepName` | string |
|
|
55
|
+
| 상단 헤더 사용하기 | `UseStepHeader` | boolean |
|
|
56
|
+
| 상단 헤더 타이틀 | `StepTitle` | UseStepHeader=true 일 때만 입력 가능 |
|
|
57
|
+
| 뒤로가기 사용하기 | `UseBackButton` (+ `BackButton`) | **데이터 탭과 공통**. true 시 `BackButton: { Next: "None", IsRestored: true }` 자동 동반 |
|
|
58
|
+
| 다이얼로그 타입 | `StepDialogType` | "사용안함" → `""`, "슬라이드업" → `"SlideUp"`, "팝업" → `"PopUp"` |
|
|
59
|
+
| 배경 (체크박스 + 색) | `BgStyle: { UseBackground: true, BgColor: "..." }` | 체크 OFF 시 `BgStyle` 키 자체 누락 |
|
|
60
|
+
| 패딩(T,R,B,L) | `Padding: { UseAuto, All, UseEach, Top, Right, Btm, Left, SizeUnit }` | 체크 OFF 시 `Padding` 키 자체 누락 → 런타임 기본 `padding: .5rem 1.25rem 0 1.25rem` 적용 |
|
|
61
|
+
| (하단 그리드 좌표 표시) | `StepRow`, `StepCol` | number |
|
|
62
|
+
|
|
63
|
+
### 데이터 탭 — 뒤로가기 세부 설정
|
|
64
|
+
|
|
65
|
+
`UseBackButton: true` 시 등장하는 `BackButton` 객체의 데이터 탭 매핑:
|
|
66
|
+
|
|
67
|
+
| 데이터 탭 UI | 메타 키 | 값 |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| 라디오 "이전 스텝 이동" | `BackButton.BackButtonMode` | `"Step"` |
|
|
70
|
+
| 라디오 "이벤트 실행" | `BackButton.BackButtonMode` | `"event"` |
|
|
71
|
+
| 이동할 스텝 (드롭다운, BackButtonMode=Step 일 때) | `BackButton.Next` | `"None"` (직전 스텝) 또는 본인 외 StepId |
|
|
72
|
+
| 이벤트명 (BackButtonMode=event 일 때) | `BackButton.BackButtonEvent` | 이벤트 이름 (사용 안 할 때 문자열 `"undefined"`) |
|
|
73
|
+
| 콜렉션 이전 상태로 복원하기 (토글) | `BackButton.IsRestored` | boolean |
|
|
74
|
+
|
|
75
|
+
**`BackButton.Next` 의미 (BackButtonMode=Step 일 때):**
|
|
76
|
+
- `"None"` → 직전 스텝(PrevStack)으로 이동.
|
|
77
|
+
- `^Step[1-9][0-9]*$` (본인 외 StepId) → 해당 스텝으로 이동.
|
|
78
|
+
- **자기 자신 StepId 참조 금지** (validate.mjs 후검증으로 거부).
|
|
79
|
+
|
|
80
|
+
**`BackButtonMode: "event"`** 의미:
|
|
81
|
+
- `BackButtonEvent` 의 이벤트가 실행되고, 그 이벤트가 동작 제어.
|
|
82
|
+
- **별도 추가 뒤로가기 동작 없음** — 이벤트가 책임짐.
|
|
83
|
+
|
|
84
|
+
전체 BackButton 객체 예시 (Step 모드, 직전 스텝):
|
|
85
|
+
|
|
86
|
+
```jsonc
|
|
87
|
+
"BackButton": {
|
|
88
|
+
"Next": "None",
|
|
89
|
+
"IsRestored": true,
|
|
90
|
+
"BackButtonMode": "Step",
|
|
91
|
+
"BackButtonEvent": "undefined"
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
이벤트 모드:
|
|
96
|
+
|
|
97
|
+
```jsonc
|
|
98
|
+
"BackButton": {
|
|
99
|
+
"Next": "None",
|
|
100
|
+
"IsRestored": true,
|
|
101
|
+
"BackButtonMode": "event",
|
|
102
|
+
"BackButtonEvent": "evtBackHandler"
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 깡통 Step (모든 옵션 OFF, 헤더만 ON) 기본형
|
|
107
|
+
|
|
108
|
+
```jsonc
|
|
109
|
+
{
|
|
110
|
+
"StepName": "",
|
|
111
|
+
"Contents": [],
|
|
112
|
+
"StepType": "StepView",
|
|
113
|
+
"UseBackButton": false,
|
|
114
|
+
"UseStepHeader": true,
|
|
115
|
+
"Next": [],
|
|
116
|
+
"StepCol": 1,
|
|
117
|
+
"StepRow": 0
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 풀옵션 Step (배경 + 패딩 + 뒤로가기 + 헤더 타이틀)
|
|
122
|
+
|
|
123
|
+
```jsonc
|
|
124
|
+
{
|
|
125
|
+
"StepName": "",
|
|
126
|
+
"StepType": "StepView",
|
|
127
|
+
"UseBackButton": true,
|
|
128
|
+
"BackButton": { "Next": "None", "IsRestored": true },
|
|
129
|
+
"UseStepHeader": true,
|
|
130
|
+
"StepTitle": "ㅇㅇ",
|
|
131
|
+
"Next": [],
|
|
132
|
+
"StepCol": 1,
|
|
133
|
+
"StepRow": 0,
|
|
134
|
+
"Padding": { "UseAuto": true, "All": "0", "UseEach": false, "SizeUnit": "%" },
|
|
135
|
+
"BgStyle": { "UseBackground": true, "BgColor": "var(--colorOrange)" },
|
|
136
|
+
"Contents": []
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 다이얼로그 (StepDialogType) 추가 필드
|
|
141
|
+
|
|
142
|
+
`StepDialogType` 값에 따라 추가로 등장 가능한 키들. **schema 가 분기로 강제** — SlideUp/PopUp 가 아닌 Step 에 이 키들이 등장하면 검증 fail.
|
|
143
|
+
|
|
144
|
+
| 키 | `""` (일반) | `"SlideUp"` | `"PopUp"` |
|
|
145
|
+
|---|:---:|:---:|:---:|
|
|
146
|
+
| `hideDlgHeader` (boolean) | ✗ | ✓ | ✓ |
|
|
147
|
+
| `useDim` (boolean) | ✗ | ✓ | ✓ |
|
|
148
|
+
| `dimTransp` (number, 0~1) | ✗ | ✓ | ✓ |
|
|
149
|
+
| `bgTransparent` (boolean) | ✗ | ✓ | ✓ |
|
|
150
|
+
| `Height` (sizeObject) | ✗ | ✓ | ✓ |
|
|
151
|
+
| `Width` (sizeObject) | ✗ | **✗** | ✓ |
|
|
152
|
+
| `PopupPosition` (string) | ✗ | **✗** | ✓ |
|
|
153
|
+
|
|
154
|
+
### SlideUp 예시
|
|
155
|
+
|
|
156
|
+
```jsonc
|
|
157
|
+
{
|
|
158
|
+
"StepType": "StepView",
|
|
159
|
+
"StepDialogType": "SlideUp",
|
|
160
|
+
"hideDlgHeader": true,
|
|
161
|
+
"Height": { "MatchText": false, "SizeValue": 11, "SizeUnit": "%" },
|
|
162
|
+
"useDim": true,
|
|
163
|
+
"dimTransp": 0,
|
|
164
|
+
"bgTransparent": true
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### PopUp 예시 (= SlideUp 의 모든 키 + Width)
|
|
169
|
+
|
|
170
|
+
```jsonc
|
|
171
|
+
{
|
|
172
|
+
"StepType": "StepView",
|
|
173
|
+
"StepDialogType": "PopUp",
|
|
174
|
+
"hideDlgHeader": true,
|
|
175
|
+
"Width": { "MatchText": false, "SizeValue": 11, "SizeUnit": "%" },
|
|
176
|
+
"Height": { "MatchText": false, "SizeValue": 11, "SizeUnit": "%" },
|
|
177
|
+
"useDim": true,
|
|
178
|
+
"dimTransp": 0,
|
|
179
|
+
"bgTransparent": true,
|
|
180
|
+
"PopupPosition": "Centered"
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## StepSub (서브시나리오) 상세
|
|
185
|
+
|
|
186
|
+
**개발 모드 → "서브시나리오 연결" 토글 ON 시** Step 이 StepSub 로 전환된다. property-data.js:343-912.
|
|
187
|
+
|
|
188
|
+
### 자동 강제 필드 (StepSub 진입 시)
|
|
189
|
+
|
|
190
|
+
```jsonc
|
|
191
|
+
{
|
|
192
|
+
"StepType": "StepSub",
|
|
193
|
+
"UseBackButton": false, // ← 자동 false
|
|
194
|
+
"UseBottomButton": false, // ← 자동 false
|
|
195
|
+
"UseEvents": false, // ← 자동 false (Step 이벤트 제한)
|
|
196
|
+
"Protocol": { "Protocol": "Original" },
|
|
197
|
+
"SubBackup": { "UseBackButton": true, "Contents": [] } // 이전 StepView 상태 백업 (JSON 객체)
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 개발 모드 UI ↔ 메타 매핑 (전체)
|
|
202
|
+
|
|
203
|
+
| UI 항목 | 메타 키 | 값 |
|
|
204
|
+
|---|---|---|
|
|
205
|
+
| 서브시나리오 아이디 | `ScenarioId` | string (예: `"flex\|\|1475_2603111630275"`) |
|
|
206
|
+
| 서브시나리오 아이디 (직접입력 모드) | `ScenarioIdText` | string |
|
|
207
|
+
| 시작 스텝 아이디 | `Protocol.StartStep` | StepId 문자열 (예: `"Step1"`) |
|
|
208
|
+
| 시작 스텝 아이디 (직접입력) | `Protocol.StartStepText` | string |
|
|
209
|
+
| Init(처음)으로 돌아갈 시나리오 — **최상위** | `Protocol.InitType: "Original"` | 라디오 옵션 1 |
|
|
210
|
+
| Init(처음)으로 돌아갈 시나리오 — **현재** | `Protocol.InitType: "Parent"` | 라디오 옵션 2 |
|
|
211
|
+
| Init(처음)으로 돌아갈 시나리오 — **서브** | `Protocol.InitType: "Current"` | 라디오 옵션 3 |
|
|
212
|
+
| 호출한 시나리오로 돌아가기 허용 | `Protocol.UseBackButton` | boolean |
|
|
213
|
+
| 서브시나리오로 현재 콜렉션 전달 | `Protocol.UseCopyCollectionToSub` | boolean |
|
|
214
|
+
| └ Status 필터 | `Protocol.TargetStatusToSub` | `"All"` / `"Active"` / `"Selected"` / `"Last"` / `"Added"` / `"Updated"` / `"Deleted"` (기본 `"All"`) |
|
|
215
|
+
| 서브시나리오의 콜렉션으로 대체하기 | `Protocol.UseCopyCollectionToOrigin` | boolean |
|
|
216
|
+
| └ Status 필터 | `Protocol.TargetStatusToOrigin` | 위와 동일 enum |
|
|
217
|
+
| 서브시나리오 로드 스크립트 | `Protocol.beforeLoadSubScenario` | string (스크립트 본문) |
|
|
218
|
+
|
|
219
|
+
### Protocol 객체 형태 (전체)
|
|
220
|
+
|
|
221
|
+
```jsonc
|
|
222
|
+
"Protocol": {
|
|
223
|
+
"Protocol": "Original", // 레거시 호환 — 보통 "Original" 고정
|
|
224
|
+
"StartStep": "Step1",
|
|
225
|
+
"StartStepText": "",
|
|
226
|
+
"InitType": "Original", // Original | Parent | Current
|
|
227
|
+
"UseBackButton": true,
|
|
228
|
+
"UseCopyCollectionToSub": true,
|
|
229
|
+
"TargetStatusToSub": "All",
|
|
230
|
+
"UseCopyCollectionToOrigin": true,
|
|
231
|
+
"TargetStatusToOrigin": "All",
|
|
232
|
+
"beforeLoadSubScenario": "/* JS script */"
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### `SubBackup` 동작
|
|
237
|
+
|
|
238
|
+
StepSub ↔ StepView 전환 시 이전 상태(예: 기존 StepView 의 `UseBackButton`, `Contents` 등) 를 복원하기 위한 백업. **JSON 객체** 형태로 메타에 저장됨. 스튜디오가 자동 관리 — 직접 편집 금지.
|
|
239
|
+
|
|
240
|
+
```jsonc
|
|
241
|
+
"SubBackup": { "UseBackButton": true, "Contents": [] }
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### StepSub 제한 사항
|
|
245
|
+
|
|
246
|
+
- **Step 이벤트 사용 불가** (`UseEvents: false` 강제) — Init/Loaded/OnLeave 등 모두 비활성.
|
|
247
|
+
- **뒤로가기 버튼 사용 불가** (`UseBackButton: false` 강제) — 대신 `Protocol.UseBackButton` 으로 호출 시나리오로 돌아갈지 결정.
|
|
248
|
+
- **하단 버튼 사용 불가** (`UseBottomButton: false` 강제).
|
|
249
|
+
- `Contents` 사용 안 함 — 자체 화면이 없으므로.
|
|
250
|
+
- `Next` 사용 안 함.
|
|
251
|
+
|
|
252
|
+
## BottomButton
|
|
253
|
+
|
|
254
|
+
별도 스키마로 분리됨. 자세한 정의는 [bottom-buttons.md](./bottom-buttons.md) 참조 (스키마 파일: `bottom-buttons.schema.json`).
|
|
255
|
+
|
|
256
|
+
요약: `Id`, `ButtonName`, `MoveTo`(Next/None/Prev/Prev_ReStart/Init), `Next` 객체(MoveStepOrder 등), `IsRestored`, `Events.Click`, `LoadScript`, 그리고 Control 급 스타일 키 묶음.
|
|
257
|
+
|
|
258
|
+
## Step.Next 규칙
|
|
259
|
+
|
|
260
|
+
1. **모든 non-start Step은 다른 Step의 `Next` 배열에 정확히 1번 등장**해야 함 (스튜디오 탐색기 표시 조건).
|
|
261
|
+
2. **Forward-only**: 이전 Step 참조 금지. 뒤로가기는 BackButton 또는 BottomButton.MoveTo 사용.
|
|
262
|
+
3. **PopUp/SlideUp Step도 부모 Step의 Next에 포함**: `Current.step.moveToNext('StepN', true)` 로 호출, `f.Frame.popUp()` 은 다른 시나리오용.
|
|
263
|
+
4. BottomButton의 `Next` 객체는 별개 — **임의 Step 참조 가능**.
|
|
264
|
+
|
|
265
|
+
## Step Events 상세 명세
|
|
266
|
+
|
|
267
|
+
> **출처 통합**: [docs.flextudio.com — Step](https://docs.flextudio.com/flextudio/concept/step), `flextudio-ai-studio/system-prompt-v2.md`, runtime: `public/engine/runtime/runtime.js#executeEventOfStep`, const: `public/engine/common/const.js#STEP_EVENT`.
|
|
268
|
+
|
|
269
|
+
### 1. Step 생애주기 (Lifecycle)
|
|
270
|
+
|
|
271
|
+
docs.flextudio.com 의 Step 생애주기 + runtime.js 호출 흐름 통합:
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
[1] Init ← executeEventOfStep('Init') (runtime.js:170, 185)
|
|
275
|
+
↓
|
|
276
|
+
[2] Load ← Step 안 모든 컴포넌트(Group/Control/StepButton) 생성
|
|
277
|
+
↓
|
|
278
|
+
[3] Loaded ← executeEventOfStep('Loaded') (runtime.js:549)
|
|
279
|
+
↓
|
|
280
|
+
[4] Ready for Use ← 사용자 입력 받기 시작
|
|
281
|
+
↓ (다음 Step 이동 / 뒤로가기 / Foreground / Scroll)
|
|
282
|
+
[5] OnLeave ← executeEventOfStep('OnLeave') (다른 Step 이동 직전, 1782/1792/1839/1873/1886/1901)
|
|
283
|
+
[5] OnBackLoaded ← executeEventOfStep('OnBackLoaded') (뒤로가기 복원 직후, 2894/3206)
|
|
284
|
+
[5] OnForeground ← executeEventOfStep('OnForeground') (모바일 앱 포그라운드 복귀, 3522)
|
|
285
|
+
[5] ScrollEnd ← Step 영역 스크롤이 끝까지 닿았을 때
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
`docs.flextudio.com — Step` 의 5단계 생애주기 (Init → Load → Loaded → Ready for Use → Leave) 와 1:1 매핑.
|
|
289
|
+
|
|
290
|
+
### 2. 이벤트 6종 (`STEP_EVENT` const + `ScrollEnd`)
|
|
291
|
+
|
|
292
|
+
const.js `STEP_EVENT` 와 system-prompt-v2.md §2 Step-level Event Types 통합. `StepEventOrder` enum 도 동일.
|
|
293
|
+
|
|
294
|
+
| 이벤트 | 발생 시점 | 호출 횟수 | 주 용도 | 모바일 한정 |
|
|
295
|
+
|---|---|---|---|---|
|
|
296
|
+
| `Init` | Step 로드 직전 (UI 그려지기 전) | Step 진입 시 1회 (`Prev` 복원 시 미실행) | **샘플 데이터 로딩 / 카테고리 생성 / 컬렉션 초기화 (`removeCategory + createCategory + addSector` / `[0].set()`)** | — |
|
|
297
|
+
| `Loaded` | Step UI 모두 그려진 후 | Step 진입 시 1회 (`Prev` 복원 시 미실행) | **DOM 의존 셋업** (Chart.js / Naver Map / Canvas 그리기 / 외부 CDN 라이브러리 / Timer 시작) | — |
|
|
298
|
+
| `OnBackLoaded` | 뒤로가기로 이 Step 복원 직후 | 매 복귀 마다 (Init/Loaded 와 별개) | 지도 재렌더링 / 리스트 갱신 / 변경된 데이터 새로 조회 | — |
|
|
299
|
+
| `OnLeave` | 이 Step 떠나기 직전 (Next 이동 / Back) | Step 이탈 시 1회 | **Cleanup** (`clearInterval` / 이벤트 리스너 해제 / 외부 SDK destroy) | — |
|
|
300
|
+
| `OnForeground` | 모바일 앱이 백그라운드 → 포그라운드 복귀 시 | 복귀 시마다 | 데이터 자동 새로고침 (push 받은 후 등) | **모바일 한정** |
|
|
301
|
+
| `ScrollEnd` | Step 영역 스크롤이 끝까지 닿았을 때 | 닿을 때마다 | **무한 스크롤 / 페이지네이션** (`LoadPage_E` 패턴) | — |
|
|
302
|
+
|
|
303
|
+
> ⚠️ const.js 에는 `AfterOfflineEvent` 도 정의되어 있으나 (`STEP_EVENT.AFTEROFFLINE`) 일반 시나리오에서는 거의 미사용 — 오프라인 큐 후처리 전용. AI 생성에서는 사용 안 함.
|
|
304
|
+
|
|
305
|
+
### 3. 메타 형식
|
|
306
|
+
|
|
307
|
+
**`Events` 키는 모든 Step 에 항상 존재해야 함** — UseEvents 가 false 여도 빈 배열 `[]` 로 둔다. 누락 시 런타임 에러.
|
|
308
|
+
|
|
309
|
+
#### 3.1 UseEvents:true — 객체 형태
|
|
310
|
+
|
|
311
|
+
```jsonc
|
|
312
|
+
{
|
|
313
|
+
"UseEvents": true,
|
|
314
|
+
"Events": {
|
|
315
|
+
"StepEventOrder": ["Init", "Loaded", "OnBackLoaded", "OnLeave", "OnForeground", "ScrollEnd"],
|
|
316
|
+
"Init": "STEP1_Init_E",
|
|
317
|
+
"Loaded": "STEP1_Loaded_E",
|
|
318
|
+
"OnBackLoaded": "STEP1_BackLoaded_E",
|
|
319
|
+
"OnLeave": "STEP1_Leave_E",
|
|
320
|
+
"OnForeground": "STEP1_Foreground_E",
|
|
321
|
+
"ScrollEnd": "STEP1_LoadPage_E"
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
| 키 | 의미 |
|
|
327
|
+
|---|---|
|
|
328
|
+
| `StepEventOrder` (enum 배열) | **활성화할 이벤트 enum 목록**. 여기에 들어있는 이벤트만 호출됨. enum: `Init` / `Loaded` / `OnBackLoaded` / `OnLeave` / `OnForeground` / `ScrollEnd` |
|
|
329
|
+
| `<EventName>` (string) | 호출할 핸들러 이름 — `scenario.Events` 의 키로 정의된 핸들러 |
|
|
330
|
+
|
|
331
|
+
> 핸들러 이름은 `scenario.Events` 에 등록된 키여야 함 ([`events.md §1.1`](events.md)). 없으면 `[event-ref]` 후검증 fail.
|
|
332
|
+
|
|
333
|
+
#### 3.2 UseEvents:false — 빈 배열
|
|
334
|
+
|
|
335
|
+
```jsonc
|
|
336
|
+
{
|
|
337
|
+
"UseEvents": false,
|
|
338
|
+
"Events": []
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
#### 3.3 부분 활성화 (가장 흔한 패턴)
|
|
343
|
+
|
|
344
|
+
```jsonc
|
|
345
|
+
"Events": {
|
|
346
|
+
"StepEventOrder": ["Init"],
|
|
347
|
+
"Init": "STEP1_Init_E"
|
|
348
|
+
}
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
`StepEventOrder` 에 빠진 이벤트는 핸들러를 적어두어도 호출 안 됨 — 실수로 누락되면 동작 안 하므로 enum 동기 필수.
|
|
352
|
+
|
|
353
|
+
### 4. 호출 순서 매트릭스
|
|
354
|
+
|
|
355
|
+
특정 동작에 따른 이벤트 호출 순서 (runtime.js 추적):
|
|
356
|
+
|
|
357
|
+
#### 4.1 최초 진입
|
|
358
|
+
|
|
359
|
+
```
|
|
360
|
+
StepN 첫 진입
|
|
361
|
+
→ executeEventOfStep('Init') [runtime.js:170/185]
|
|
362
|
+
→ 컴포넌트 생성 (Group/Control/StepButton)
|
|
363
|
+
→ loadStep / loadDialog
|
|
364
|
+
→ executeEventOfStep('Loaded') [runtime.js:549]
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
#### 4.2 다음 Step 이동
|
|
368
|
+
|
|
369
|
+
```
|
|
370
|
+
StepN → StepN+1
|
|
371
|
+
→ StepN: executeEventOfStep('OnLeave') [_fEvent.push, runtime.js:1782 etc.]
|
|
372
|
+
→ _stepStack 에 StepN 백업 (collection / state 보관)
|
|
373
|
+
→ StepN+1 진입 ([4.1] 처음부터)
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
#### 4.3 뒤로가기 (`MoveTo: "Prev"` / BackButton 기본)
|
|
377
|
+
|
|
378
|
+
```
|
|
379
|
+
StepN+1 → StepN (Prev)
|
|
380
|
+
→ StepN+1: executeEventOfStep('OnLeave')
|
|
381
|
+
→ _stepStack 에서 StepN 복원 (collection / DOM 상태 그대로)
|
|
382
|
+
→ executeEventOfStep('OnBackLoaded') [runtime.js:2894/3206]
|
|
383
|
+
→ ⚠️ Init / Loaded 는 호출되지 않음 — 캐시 복원
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
> system-prompt-v2.md §3 의 핵심 규칙: **`Prev` 로 돌아갈 Step 이 `Loaded` 에서 DOM 의존 렌더링(Chart.js/Map/Canvas/Timer) 을 하면 빈 화면이 됨** → BottomButton `MoveTo: "Prev_ReStart"` 사용해야 Init/Loaded 가 다시 실행됨.
|
|
387
|
+
|
|
388
|
+
#### 4.4 Prev_ReStart (재시작)
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
StepN+1 → StepN (Prev_ReStart)
|
|
392
|
+
→ StepN+1: executeEventOfStep('OnLeave')
|
|
393
|
+
→ StepN 새로 진입 ([4.1] 처음부터: Init → 컴포넌트 생성 → Loaded)
|
|
394
|
+
→ OnBackLoaded 미호출 (재시작이지 복귀가 아님)
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
#### 4.5 Foreground 복귀 (모바일)
|
|
398
|
+
|
|
399
|
+
```
|
|
400
|
+
앱이 백그라운드 → 포그라운드
|
|
401
|
+
→ executeEventOfStep('OnForeground') [runtime.js:3522]
|
|
402
|
+
→ (현재 Step 의 컬렉션/DOM 유지된 상태)
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
#### 4.6 ScrollEnd
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
사용자 스크롤이 ScrollY 영역 바닥에 도달
|
|
409
|
+
→ executeEventOfStep('ScrollEnd') (지속 발생 — 스크롤 끝에 머무는 동안 반복)
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### 5. BottomButton MoveTo 와 이벤트 재실행 매트릭스
|
|
413
|
+
|
|
414
|
+
system-prompt-v2.md §3 BottomButton + const.js `MOVETYPE` 통합:
|
|
415
|
+
|
|
416
|
+
| MoveTo | 동작 | OnLeave (현재) | Init / Loaded (대상) | OnBackLoaded (대상) |
|
|
417
|
+
|---|---|---|---|---|
|
|
418
|
+
| `Next` | 다음 Step 이동 | ✓ | ✓ (대상이 첫 진입이면) | — |
|
|
419
|
+
| `Prev` | 이전 Step **캐시 복원** | ✓ | **✗** | ✓ |
|
|
420
|
+
| `Prev_ReStart` | 이전 Step **재시작** | ✓ | ✓ (재실행) | **✗** |
|
|
421
|
+
| `Init` | StartSteps 의 시작 Step 으로 | ✓ | ✓ (재시작) | — |
|
|
422
|
+
| `None` | 이동 안 함 (이벤트만) | — | — | — |
|
|
423
|
+
|
|
424
|
+
> **Chart/Map/Canvas/Timer 가 있는 Step → 돌아갈 때 반드시 `Prev_ReStart`** (system-prompt-v2.md §4323).
|
|
425
|
+
|
|
426
|
+
### 6. 이벤트별 권장 패턴
|
|
427
|
+
|
|
428
|
+
system-prompt-v2.md 의 검증된 패턴 모음.
|
|
429
|
+
|
|
430
|
+
#### 6.1 Init — 샘플 데이터 / 카테고리 초기화
|
|
431
|
+
|
|
432
|
+
화면이 그릴 mock 데이터는 시작 Step.Init 에서 카테고리 섹터로 박는다. 작성 패턴/제약/`[mock-init]`·`[script-allow]` 검증 규칙은 [목업 데이터](mockup-data.md) 단일 진실원본 참조.
|
|
433
|
+
|
|
434
|
+
> `_base.User` (`fBaseUserNo` / `fBaseUserName`) 는 자동 세팅 — Init 에서 덮어쓰지 말 것.
|
|
435
|
+
|
|
436
|
+
#### 6.2 Loaded — DOM 의존 / 라이브러리 사용
|
|
437
|
+
|
|
438
|
+
외부 라이브러리(Chart 등)는 **`Scenario.StyleURLs` 에 등록**해 진입 시 자동 로드하고(권장), `Loaded` 에서는 DOM 을 잡아 라이브러리 전역을 바로 호출한다.
|
|
439
|
+
|
|
440
|
+
```jsonc
|
|
441
|
+
// Scenario.StyleURLs: ["https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.min.js"]
|
|
442
|
+
"STEP1_Loaded_E": [
|
|
443
|
+
{ "Action": "Script", "Script": "var ctx = document.getElementById('myChart').getContext('2d');\nnew Chart(ctx, { type:'bar', data: { ... } });" }
|
|
444
|
+
]
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
> **Init 이 아닌 Loaded** — DOM 이 그려진 후에 캔버스 접근. (system-prompt-v2.md §4323)
|
|
448
|
+
> 라이브러리 로드는 `f.Script.load()` 보다 `Scenario.StyleURLs` 등록을 우선 (정적 URL). `f.Script.load` 는 동적 URL 등 부득이한 경우만. ([control/embed.md](control/embed.md) "외부 라이브러리 연동 패턴" 참조.)
|
|
449
|
+
|
|
450
|
+
#### 6.3 OnBackLoaded — 데이터 갱신
|
|
451
|
+
|
|
452
|
+
```jsonc
|
|
453
|
+
"STEP1_BackLoaded_E": [
|
|
454
|
+
{ "Action": "LinkedEvent", "EventName": "RefreshData_E" }
|
|
455
|
+
]
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
지도 재렌더링 / 외부에서 데이터가 바뀌었을 가능성 → 다시 조회.
|
|
459
|
+
|
|
460
|
+
#### 6.4 OnLeave — Cleanup
|
|
461
|
+
|
|
462
|
+
```jsonc
|
|
463
|
+
"STEP1_Leave_E": [
|
|
464
|
+
{ "Action": "Script", "Script": "if (window._myTimer) { clearInterval(window._myTimer); window._myTimer = null; }" }
|
|
465
|
+
]
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
#### 6.5 OnForeground — 자동 새로고침 (모바일)
|
|
469
|
+
|
|
470
|
+
```jsonc
|
|
471
|
+
"STEP1_Foreground_E": [
|
|
472
|
+
{ "Action": "LinkedEvent", "EventName": "STEP1_Init_E" }
|
|
473
|
+
]
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
푸시 알림 받은 후 데이터 동기화 등.
|
|
477
|
+
|
|
478
|
+
#### 6.6 ScrollEnd — 무한 스크롤
|
|
479
|
+
|
|
480
|
+
```jsonc
|
|
481
|
+
// system-prompt-v2.md §4488
|
|
482
|
+
"Events": {
|
|
483
|
+
"StepEventOrder": ["Init", "ScrollEnd"],
|
|
484
|
+
"Init": "LoadPage_E",
|
|
485
|
+
"ScrollEnd": "LoadPage_E"
|
|
486
|
+
},
|
|
487
|
+
|
|
488
|
+
// scenario.Events
|
|
489
|
+
"LoadPage_E": [
|
|
490
|
+
{ "Action": "Script", "Script": "if (_c.CtgList.length >= _c.CtgPageInfo[0].total) return;\n_c.CtgPageInfo[0].set('page', _c.CtgPageInfo[0].page + 1);\nf.Content('f_3').reload();" }
|
|
491
|
+
]
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
같은 핸들러를 Init + ScrollEnd 양쪽에 거는 게 일반적 패턴.
|
|
495
|
+
|
|
496
|
+
### 7. 제약 / 함정
|
|
497
|
+
|
|
498
|
+
#### 7.1 StepSub 는 Step 이벤트 사용 불가
|
|
499
|
+
|
|
500
|
+
`StepType: 'StepSub'` 면 `UseEvents: false` 자동 강제 → `Events: []`. 서브시나리오 내부의 Step 들이 자체 이벤트 가지므로 외부 호출 의미 없음.
|
|
501
|
+
|
|
502
|
+
#### 7.2 OpenURL 사용 시 StepEvent 무시
|
|
503
|
+
|
|
504
|
+
`UseOpenURL: true` 면 `executeEventOfStep` 가 즉시 return (runtime.js:3542-3545). 외부 URL 페이지로 대체되므로 이벤트 호출 불가.
|
|
505
|
+
|
|
506
|
+
#### 7.3 StepEventOrder ↔ 핸들러 키 동기 필수
|
|
507
|
+
|
|
508
|
+
`StepEventOrder` 에 안 든 이벤트 핸들러 키는 정의되어 있어도 호출 안 됨. 핸들러 키만 적고 EventOrder 누락하면 조용히 무시됨 — `[strict-fields]` 검증으로도 `Events` 객체 키 자체는 통과 (값 string 이라).
|
|
509
|
+
|
|
510
|
+
```jsonc
|
|
511
|
+
// ✗ 잘못 — Init 핸들러는 안 불림
|
|
512
|
+
"Events": { "Init": "X" }
|
|
513
|
+
|
|
514
|
+
// ✓ 정상
|
|
515
|
+
"Events": { "StepEventOrder": ["Init"], "Init": "X" }
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
#### 7.4 Prev / Prev_ReStart 와 Loaded 의존성
|
|
519
|
+
|
|
520
|
+
Loaded 에서 Chart/Map/Canvas/Timer 등 DOM 의존 작업 → 그 Step 으로 돌아오는 BottomButton 은 `MoveTo: "Prev_ReStart"` (재시작) 필수. `"Prev"` 면 빈 화면. (system-prompt-v2.md §4351)
|
|
521
|
+
|
|
522
|
+
#### 7.5 Init 이 컬렉션을 리셋하는 경우 moveToFirst 주의
|
|
523
|
+
|
|
524
|
+
`Current.step.moveToFirst()` 는 시작 Step 으로 돌아가며 Init 재실행 → `removeCategory + createCategory` 가 다시 돌아 사용자 입력 데이터가 날아감. (system-prompt-v2.md §4730)
|
|
525
|
+
|
|
526
|
+
#### 7.6 Tab + LinkedStep 패턴 — Init 위치
|
|
527
|
+
|
|
528
|
+
탭이 있는 부모 Step 의 Init 에서 모든 샘플 데이터를 한 번에 로딩. LinkedStep 의 Init 에 넣으면 탭 전환마다 컬렉션이 초기화됨. (system-prompt-v2.md §4627)
|
|
529
|
+
|
|
530
|
+
#### 7.7 SlideUp 추가 폼 — Init 불필요
|
|
531
|
+
|
|
532
|
+
DataUsage:`'new'` 가 자동으로 빈 섹터 생성하므로 `Init` 이벤트 자체가 불필요. `UseEvents: false`, `Events: []` 로 둠. (system-prompt-v2.md §4745)
|
|
533
|
+
|
|
534
|
+
### 8. 검증 후크 정합
|
|
535
|
+
|
|
536
|
+
| Tag | 검증 내용 |
|
|
537
|
+
|---|---|
|
|
538
|
+
| `[strict-fields]` | `StepEventOrder` enum 6종 외 값이 들어가면 거부 |
|
|
539
|
+
| `[event-ref]` | `Events.<EventName>` 값 + `LinkedEvent.EventName` 이 `scenario.Events` 키로 정의되어 있는지 |
|
|
540
|
+
| `[no-service]` | Service / API 액션은 스킬 생성에서 차단 — Step 이벤트 핸들러 안에서도 동일 |
|
|
541
|
+
|
|
542
|
+
## 함정
|
|
543
|
+
|
|
544
|
+
- `BackButton.Next` 권장값은 `"None"`. `"Prev"` 사용 시 "Prev"라는 Step을 찾으려 해서 에러. (단 실 메타는 특정 StepId 사용 케이스도 있음 — schema는 string 으로 둠.)
|
|
545
|
+
- `BackButton.IsRestored: true` → 뒤로가기 시 컬렉션 복원 (입력 폼 취소). `false` → 변경 유지 (상세 화면 등).
|
|
546
|
+
- `MoveTo: "Prev"` → 캐시 복원 (Init/Loaded 미실행). DOM 의존(Chart/Map/Canvas/Timer)이 있으면 `"Prev_ReStart"` 사용.
|