@simplysm/sd-claude 14.0.53 → 14.0.55
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/claude/references/sd-simplysm-v14/angular/README.md +164 -291
- package/claude/references/sd-simplysm-v14/angular/_api-index.md +250 -0
- package/claude/references/sd-simplysm-v14/angular/bootstrap/provide-sd-angular.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/bootstrap/sd-angular-config-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-command-directive.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-events.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-intersection-directive.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-invalid.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-resize-directive.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-ripple.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-router-link.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-show-effect.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/directives/sd-typed-template.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/features/sd-address-search-modal.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/features/sd-permission-table.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/features/sd-shared-data-components.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/features/sd-tiptap-editor.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/pipes/format-pipe.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/plugins/sd-global-error-handler.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/plugins/sd-option-event-plugin.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/provider-types/sd-menu.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/provider-types/sd-modal-content-def.md +9 -9
- package/claude/references/sd-simplysm-v14/angular/provider-types/sd-toast-content-def.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/provider-types/shared-data-base.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-activated-modal-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-app-structure-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-busy-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-file-dialog-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-local-storage-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-modal-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-navigate-window-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-print-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-service-client-factory-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-shared-data-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-system-config-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-system-log-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-theme-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/providers/sd-toast-provider.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/styling/classes.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/styling/mixins.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/styling/themes.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/styling/variables.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/type-utilities/directive-input-signals.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-data/sd-base-container.md +141 -0
- package/claude/references/sd-simplysm-v14/angular/ui-data/sd-crud-detail.md +273 -0
- package/claude/references/sd-simplysm-v14/angular/ui-data/sd-crud-list.md +623 -0
- package/claude/references/sd-simplysm-v14/angular/ui-data/sd-list.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-data/sd-sheet.md +34 -39
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-additional-button.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-anchor.md +2 -7
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-button.md +2 -11
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-checkbox-group.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-checkbox.md +2 -4
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-date-range-picker.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-form.md +2 -7
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-modal-select-button.md +7 -7
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-numpad.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-range.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-select.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-shared-data-select.md +2 -4
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-state-preset.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-switch.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-textarea.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-form/sd-textfield.md +2 -8
- package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-dock-container.md +2 -7
- package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-dock.md +2 -6
- package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-gap.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-kanban-board.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-kanban-lane.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-kanban.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-collapse.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-pagination.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-sidebar-container.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-sidebar-menu.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-sidebar-user.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-tab.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar-container.md +2 -9
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar-menu.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar-user.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar.md +2 -7
- package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-busy-container.md +2 -5
- package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-confirm-modal.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-dropdown.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-modal.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-prompt-modal.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-toast.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-barcode.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-calendar.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-echarts.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-label.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-note.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-progress.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/utils/inject-routing-signals.md +3 -16
- package/claude/references/sd-simplysm-v14/angular/utils/inject-sd-system-config-resource.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/utils/mark.md +2 -5
- package/claude/references/sd-simplysm-v14/angular/utils/selection-managers.md +3 -1
- package/claude/references/sd-simplysm-v14/angular/utils/set-safe-style.md +2 -0
- package/claude/references/sd-simplysm-v14/angular/utils/setup-functions.md +2 -4
- package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/README.md +16 -18
- package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/_api-index.md +18 -0
- package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/apk-installer/apk-installer.md +1 -1
- package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/auto-update/auto-update.md +1 -1
- package/claude/references/sd-simplysm-v14/capacitor-plugin-file-system/README.md +24 -45
- package/claude/references/sd-simplysm-v14/core-browser/README.md +22 -29
- package/claude/references/sd-simplysm-v14/core-browser/_api-index.md +37 -0
- package/claude/references/sd-simplysm-v14/core-browser/extensions/copy-paste.md +1 -1
- package/claude/references/sd-simplysm-v14/core-browser/extensions/element-prototype-extensions.md +2 -0
- package/claude/references/sd-simplysm-v14/core-browser/extensions/get-bounds.md +1 -1
- package/claude/references/sd-simplysm-v14/core-browser/utils/download-blob.md +1 -1
- package/claude/references/sd-simplysm-v14/core-browser/utils/fetch-url-bytes.md +1 -1
- package/claude/references/sd-simplysm-v14/core-browser/utils/indexed-db-store.md +1 -1
- package/claude/references/sd-simplysm-v14/core-browser/utils/indexed-db-virtual-fs.md +1 -1
- package/claude/references/sd-simplysm-v14/core-browser/utils/open-file-dialog.md +1 -1
- package/claude/references/sd-simplysm-v14/core-common/README.md +71 -153
- package/claude/references/sd-simplysm-v14/core-common/_api-index.md +70 -0
- package/claude/references/sd-simplysm-v14/core-common/errors/argument-error.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/errors/not-implemented-error.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/errors/sd-error.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/errors/timeout-error.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/extensions/array.md +2 -0
- package/claude/references/sd-simplysm-v14/core-common/extensions/map.md +2 -0
- package/claude/references/sd-simplysm-v14/core-common/extensions/set.md +2 -0
- package/claude/references/sd-simplysm-v14/core-common/features/debounce-queue.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/features/event-emitter.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/features/serial-queue.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/type-utils/common-types.md +2 -0
- package/claude/references/sd-simplysm-v14/core-common/type-utils/env.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/types/date-only.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/types/date-time.md +9 -1
- package/claude/references/sd-simplysm-v14/core-common/types/lazy-gc-map.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/types/time.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/types/uuid.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/bytes.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/dt.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/err.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/json.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/num.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/obj.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/path.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/primitive.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/str.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/template-strings.md +2 -0
- package/claude/references/sd-simplysm-v14/core-common/utils/transfer.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/wait.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/xml.md +3 -1
- package/claude/references/sd-simplysm-v14/core-common/utils/zip-archive.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/README.md +25 -35
- package/claude/references/sd-simplysm-v14/core-node/_api-index.md +34 -0
- package/claude/references/sd-simplysm-v14/core-node/features/fs-watcher.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/logging/create-file-reporter.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/logging/pretty-reporter.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/logging/setup-consola.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/utils/cpx.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/utils/fsx.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/utils/pathx.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/worker/create-worker.md +3 -1
- package/claude/references/sd-simplysm-v14/core-node/worker/worker.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/README.md +35 -49
- package/claude/references/sd-simplysm-v14/excel/_api-index.md +40 -0
- package/claude/references/sd-simplysm-v14/excel/core-classes/excel-cell.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/core-classes/excel-col.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/core-classes/excel-row.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/core-classes/excel-workbook.md +6 -3
- package/claude/references/sd-simplysm-v14/excel/core-classes/excel-worksheet.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/types/excel-address-point.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/types/excel-style-options.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/types/excel-value-type.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/utilities/excel-utils.md +3 -1
- package/claude/references/sd-simplysm-v14/excel/wrapper/excel-wrapper.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/README.md +66 -71
- package/claude/references/sd-simplysm-v14/orm-common/_api-index.md +59 -0
- package/claude/references/sd-simplysm-v14/orm-common/core/db-context.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/core/db-transaction-error.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/expression/expr-unit.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/expression/expr.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/models/migration.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/query-builder/create-query-builder.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/queryable-executable/executable.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/queryable-executable/parse-search-query.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/queryable-executable/queryable.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/schema-builders/column-builder.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/schema-builders/foreign-key-builder.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/schema-builders/index-builder.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/schema-builders/procedure.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/schema-builders/table.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/schema-builders/view.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/types/data-type.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/types/dialect.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/types/expr.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/types/parse-query-result.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-common/types/query-def.md +3 -1
- package/claude/references/sd-simplysm-v14/orm-node/README.md +27 -28
- package/claude/references/sd-simplysm-v14/orm-node/_api-index.md +29 -0
- package/claude/references/sd-simplysm-v14/orm-node/connections/mssql-db-conn.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/connections/mysql-db-conn.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/connections/postgresql-db-conn.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/core/create-db-conn.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/core/create-orm.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/core/node-db-context-executor.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/types/db-conn-config.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/types/db-conn-constants.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/types/db-conn.md +2 -0
- package/claude/references/sd-simplysm-v14/orm-node/types/get-dialect-from-config.md +2 -0
- package/claude/references/sd-simplysm-v14/sd-claude/README.md +26 -65
- package/claude/references/sd-simplysm-v14/sd-claude/_api-index.md +39 -0
- package/claude/references/sd-simplysm-v14/sd-claude/assets.md +2 -0
- package/claude/references/sd-simplysm-v14/sd-claude/cli.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-claude/hooks.md +11 -7
- package/claude/references/sd-simplysm-v14/sd-claude/scripts.md +2 -0
- package/claude/references/sd-simplysm-v14/sd-cli/README.md +48 -119
- package/claude/references/sd-simplysm-v14/sd-cli/_api-index.md +49 -0
- package/claude/references/sd-simplysm-v14/sd-cli/angular-vite-plugin/sd-angular-plugin.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/build-target.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/npm-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-browser-support-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-build-package-config.md +4 -2
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-capacitor-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-client-package-config.md +4 -2
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-config.md +4 -2
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-electron-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-package-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-post-publish-script-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-publish-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-pwa-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-scripts-package-config.md +4 -2
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-server-package-config.md +4 -2
- package/claude/references/sd-simplysm-v14/sd-cli/config/sd-watch-hook-config.md +3 -1
- package/claude/references/sd-simplysm-v14/sd-cli/ts-compiler/sd-ts-compiler.md +3 -1
- package/claude/references/sd-simplysm-v14/service-client/README.md +33 -42
- package/claude/references/sd-simplysm-v14/service-client/_api-index.md +58 -0
- package/claude/references/sd-simplysm-v14/service-client/features/event-client.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/features/file-client.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/features/orm-client-connector.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/features/orm-client-db-context-executor.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/main/service-client.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/protocol/client-protocol-wrapper.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/transport/service-transport.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/transport/socket-provider.md +1 -1
- package/claude/references/sd-simplysm-v14/service-client/types/blob-input.md +2 -2
- package/claude/references/sd-simplysm-v14/service-client/types/browser-worker.md +2 -2
- package/claude/references/sd-simplysm-v14/service-client/types/file-collection.md +2 -2
- package/claude/references/sd-simplysm-v14/service-client/types/service-connection-options.md +2 -2
- package/claude/references/sd-simplysm-v14/service-client/types/service-progress.md +2 -2
- package/claude/references/sd-simplysm-v14/service-common/README.md +34 -127
- package/claude/references/sd-simplysm-v14/service-common/_api-index.md +51 -0
- package/claude/references/sd-simplysm-v14/service-common/app-structure/app-structure-item.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/app-structure/get-flat-permissions.md +7 -1
- package/claude/references/sd-simplysm-v14/service-common/app-structure/is-usable-modules-chain.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/app-structure/is-usable-modules.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/events/define-event.md +7 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/create-service-protocol.md +8 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/protocol-config.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-add-event-listener-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-auth-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-emit-event-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-error-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-event-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-get-event-listener-infos-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-progress-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-remove-event-listener-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-request-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/protocol/service-response-message.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/service-types/app-structure-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/service-types/auto-update-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/service-types/orm-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-common/types/service-upload-result.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/README.md +50 -135
- package/claude/references/sd-simplysm-v14/service-server/_api-index.md +87 -0
- package/claude/references/sd-simplysm-v14/service-server/auth/auth-token-payload.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/auth/sign-jwt.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/auth/verify-jwt.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/core/auth.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/core/define-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/core/execute-service-method.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/core/service-context.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/legacy/handle-v1-connection.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/main/create-service-server.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/main/service-server.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/protocol/server-protocol-wrapper.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/services/app-structure-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/services/auto-update-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/services/orm-service.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-http-request.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-static-file.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-upload.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/transport-socket/service-socket.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/transport-socket/websocket-handler.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/types/service-server-options.md +3 -1
- package/claude/references/sd-simplysm-v14/service-server/utils/get-config.md +3 -1
- package/claude/references/sd-simplysm-v14/storage/README.md +17 -80
- package/claude/references/sd-simplysm-v14/storage/_api-index.md +26 -0
- package/claude/references/sd-simplysm-v14/storage/clients/ftp-storage-client.md +3 -1
- package/claude/references/sd-simplysm-v14/storage/clients/sftp-storage-client.md +3 -1
- package/claude/references/sd-simplysm-v14/storage/factory/storage-factory.md +1 -1
- package/claude/references/sd-simplysm-v14/storage/types/file-info.md +3 -1
- package/claude/references/sd-simplysm-v14/storage/types/storage-client.md +2 -0
- package/claude/references/sd-simplysm-v14/storage/types/storage-conn-config.md +3 -1
- package/claude/rules/sd-claude-rules.md +1 -1
- package/claude/skills/sd-dev/SKILL.md +62 -8
- package/claude/skills/sd-dev/subagent-preamble.md +22 -0
- package/package.json +1 -1
- package/claude/references/sd-simplysm-v14/angular/recipes/_common-rules.md +0 -336
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-a-edit-save.md +0 -191
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-b-delete-restore.md +0 -103
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-c-modal-view.md +0 -198
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-d-control-view.md +0 -109
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-e-auxiliary.md +0 -87
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-f-complex-detail.md +0 -202
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail.md +0 -280
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-a-inline-edit.md +0 -386
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-b-selection.md +0 -215
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-c-inline-delete.md +0 -64
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-d-select-modal.md +0 -193
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-e-readonly-modal.md +0 -140
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-f-modal-edit.md +0 -123
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-g-excel.md +0 -145
- package/claude/references/sd-simplysm-v14/angular/recipes/crud-list.md +0 -377
- package/claude/references/sd-simplysm-v14/angular/recipes/data-select-button.md +0 -368
- package/claude/references/sd-simplysm-v14/angular/recipes/page-modal-container.md +0 -238
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-content-type-data.md +0 -23
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-drawing-data.md +0 -29
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-relationship-data.md +0 -39
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-shared-string-data.md +0 -42
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-style-data.md +0 -97
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-workbook-data.md +0 -22
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml-worksheet-data.md +0 -68
- package/claude/references/sd-simplysm-v14/excel/types/excel-xml.md +0 -15
|
@@ -9,154 +9,69 @@
|
|
|
9
9
|
npm install @simplysm/service-server
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
## 하려는 작업 →
|
|
13
|
-
|
|
14
|
-
| 작업 | 먼저 읽을 파일 |
|
|
15
|
-
|------|----------------|
|
|
16
|
-
| 서버 생성 및 시작 | [`ServiceServer`](./main/service-server.md) |
|
|
17
|
-
| 서비스 정의 | [`defineService`](./core/define-service.md) |
|
|
18
|
-
| 인증 적용 | [`auth`](./core/auth.md) |
|
|
19
|
-
| JWT 토큰 발급/검증 | [`signJwt`](./auth/sign-jwt.md), [`verifyJwt`](./auth/verify-jwt.md) |
|
|
20
|
-
| 이벤트 브로드캐스트 | [`ServiceServer`](./main/service-server.md) (`getEvent` / `emitEvent`) |
|
|
21
|
-
| ORM 서비스 등록 | [`OrmService`](./services/orm-service.md) |
|
|
22
|
-
| 자동 업데이트 서비스 등록 | [`AutoUpdateService`](./services/auto-update-service.md) |
|
|
23
|
-
| 파일 업로드 처리 | [`handleUpload`](./transport-http/handle-upload.md) |
|
|
24
|
-
| 설정 파일 읽기 | [`getConfig`](./utils/get-config.md) |
|
|
12
|
+
## 하려는 작업 → 읽을 파일
|
|
25
13
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### Main
|
|
29
|
-
|
|
30
|
-
| Entry | Kind | 언제 쓰나 |
|
|
31
|
-
|-------|------|-----------|
|
|
32
|
-
| [`ServiceServer`](./main/service-server.md) | class | 서버를 생성하고 시작할 때. WebSocket/HTTP 라우팅, JWT 인증, 이벤트 브로드캐스트, graceful shutdown을 처리한다 |
|
|
33
|
-
| [`ServerEventProxy`](./main/service-server.md#servereventproxy) | interface | `getEvent()`의 반환 타입을 참조할 때 |
|
|
34
|
-
| [`createServiceServer`](./main/create-service-server.md) | function | `new ServiceServer()` 대신 팩토리 함수로 서버를 생성할 때 |
|
|
35
|
-
|
|
36
|
-
### Types
|
|
37
|
-
|
|
38
|
-
| Entry | Kind | 언제 쓰나 |
|
|
39
|
-
|-------|------|-----------|
|
|
40
|
-
| [`ServiceServerOptions`](./types/service-server-options.md) | interface | 서버 생성 옵션을 구성할 때 (rootPath, port, ssl, auth, services) |
|
|
41
|
-
|
|
42
|
-
### Auth
|
|
43
|
-
|
|
44
|
-
| Entry | Kind | 언제 쓰나 |
|
|
45
|
-
|-------|------|-----------|
|
|
46
|
-
| [`AuthTokenPayload`](./auth/auth-token-payload.md) | interface | JWT 페이로드 타입을 참조할 때 |
|
|
47
|
-
| [`signJwt`](./auth/sign-jwt.md) | function | 서버 외부에서 직접 JWT 토큰을 서명할 때. 일반적으로는 `server.signAuthToken()` 사용을 권장 |
|
|
48
|
-
| [`verifyJwt`](./auth/verify-jwt.md) | function | 서버 외부에서 직접 JWT 토큰을 검증할 때. 일반적으로는 `server.verifyAuthToken()` 사용을 권장 |
|
|
49
|
-
| [`decodeJwt`](./auth/verify-jwt.md#decodejwt) | function | 검증 없이 토큰 내용을 확인할 때 (디버깅 등) |
|
|
50
|
-
|
|
51
|
-
### Core
|
|
52
|
-
|
|
53
|
-
| Entry | Kind | 언제 쓰나 |
|
|
54
|
-
|-------|------|-----------|
|
|
55
|
-
| [`defineService`](./core/define-service.md) | function | 서비스를 정의할 때. 이름과 팩토리 함수로 구성한다 |
|
|
56
|
-
| [`ServiceDefinition`](./core/define-service.md#servicedefinition) | interface | 서비스 정의 타입을 참조할 때 |
|
|
57
|
-
| [`ServiceMethods`](./core/define-service.md#servicemethods) | type | 클라이언트 측 타입 공유를 위해 서비스 메서드 시그니처를 추출할 때 |
|
|
58
|
-
| [`auth`](./core/auth.md) | function | 서비스 또는 메서드에 인증을 요구할 때 |
|
|
59
|
-
| [`getServiceAuthPermissions`](./core/auth.md#getserviceauthpermissions) | function | `auth()`로 래핑된 함수의 권한 배열을 프로그래밍적으로 읽을 때 |
|
|
60
|
-
| [`ServiceContext`](./core/service-context.md) | interface | 서비스 팩토리에서 컨텍스트 타입을 참조할 때 |
|
|
61
|
-
| [`createServiceContext`](./core/service-context.md#createservicecontext) | function | 테스트 등에서 `ServiceContext`를 직접 생성할 때 |
|
|
62
|
-
| [`executeServiceMethod`](./core/execute-service-method.md) | function | 커스텀 전송 계층에서 서비스 실행 파이프라인을 직접 호출할 때 |
|
|
63
|
-
|
|
64
|
-
### Transport - Socket
|
|
65
|
-
|
|
66
|
-
| Entry | Kind | 언제 쓰나 |
|
|
67
|
-
|-------|------|-----------|
|
|
68
|
-
| [`WebSocketHandler`](./transport-socket/websocket-handler.md) | interface | WebSocket 메시지 라우팅 및 이벤트 브로드캐스트 동작을 이해할 때 |
|
|
69
|
-
| [`createWebSocketHandler`](./transport-socket/websocket-handler.md#createwebsockethandler) | function | 커스텀 WebSocket 핸들러를 생성할 때 |
|
|
70
|
-
| [`ServiceSocket`](./transport-socket/service-socket.md) | interface | WebSocket 연결 추상화를 참조할 때. `ServiceContext.socket`의 타입이다 |
|
|
71
|
-
| [`createServiceSocket`](./transport-socket/service-socket.md#createservicesocket) | function | 테스트 등에서 `ServiceSocket`을 직접 생성할 때 |
|
|
72
|
-
|
|
73
|
-
### Transport - HTTP
|
|
74
|
-
|
|
75
|
-
| Entry | Kind | 언제 쓰나 |
|
|
76
|
-
|-------|------|-----------|
|
|
77
|
-
| [`handleHttpRequest`](./transport-http/handle-http-request.md) | function | HTTP API 요청 처리 동작을 이해할 때. `ServiceServer`가 내부적으로 사용한다 |
|
|
78
|
-
| [`handleUpload`](./transport-http/handle-upload.md) | function | 파일 업로드 처리 동작을 이해할 때. `ServiceServer`가 내부적으로 사용한다 |
|
|
79
|
-
| [`handleStaticFile`](./transport-http/handle-static-file.md) | function | 정적 파일 서빙 동작을 이해할 때. `ServiceServer`가 내부적으로 사용한다 |
|
|
80
|
-
|
|
81
|
-
### Protocol
|
|
82
|
-
|
|
83
|
-
| Entry | Kind | 언제 쓰나 |
|
|
84
|
-
|-------|------|-----------|
|
|
85
|
-
| [`ServerProtocolWrapper`](./protocol/server-protocol-wrapper.md) | interface | 프로토콜 인코딩/디코딩 래퍼의 동작을 이해할 때. worker 스레드 자동 위임 기준을 확인할 때 |
|
|
86
|
-
| [`createServerProtocolWrapper`](./protocol/server-protocol-wrapper.md#createserverprotocolwrapper) | function | 커스텀 프로토콜 래퍼를 생성할 때 |
|
|
87
|
-
|
|
88
|
-
### Services
|
|
89
|
-
|
|
90
|
-
| Entry | Kind | 언제 쓰나 |
|
|
91
|
-
|-------|------|-----------|
|
|
92
|
-
| [`OrmService`](./services/orm-service.md) | const | DB 연결을 서비스 계층에서 제공할 때. WebSocket 전용, 인증 필수 |
|
|
93
|
-
| [`OrmServiceType`](./services/orm-service.md#ormservicetype) | type | 클라이언트에서 ORM 서비스 타입을 참조할 때 |
|
|
94
|
-
| [`AutoUpdateService`](./services/auto-update-service.md) | const | 클라이언트 앱 자동 업데이트를 제공할 때 |
|
|
95
|
-
| [`AutoUpdateServiceType`](./services/auto-update-service.md#autoupdateservicetype) | type | 클라이언트에서 자동 업데이트 서비스 타입을 참조할 때 |
|
|
96
|
-
| [`AppStructureService`](./services/app-structure-service.md) | function | 앱 구조 정보를 클라이언트에 제공할 때 |
|
|
97
|
-
| [`AppStructureServiceType`](./services/app-structure-service.md#appstructureservicetype) | type | 클라이언트에서 앱 구조 서비스 타입을 참조할 때 |
|
|
98
|
-
|
|
99
|
-
### Utils
|
|
100
|
-
|
|
101
|
-
| Entry | Kind | 언제 쓰나 |
|
|
102
|
-
|-------|------|-----------|
|
|
103
|
-
| [`getConfig`](./utils/get-config.md) | function | `.config.json` 파일을 캐싱 및 자동 리로드로 읽을 때 |
|
|
104
|
-
|
|
105
|
-
### Legacy
|
|
106
|
-
|
|
107
|
-
| Entry | Kind | 언제 쓰나 |
|
|
108
|
-
|-------|------|-----------|
|
|
109
|
-
| [`handleV1Connection`](./legacy/handle-v1-connection.md) | function | V1 WebSocket 프로토콜 호환이 필요할 때. 자동 업데이트만 지원한다 |
|
|
110
|
-
|
|
111
|
-
## Usage Examples
|
|
112
|
-
|
|
113
|
-
### 서버 생성 및 시작
|
|
114
|
-
|
|
115
|
-
```typescript
|
|
116
|
-
import { createServiceServer, defineService, auth } from "@simplysm/service-server";
|
|
117
|
-
|
|
118
|
-
const HealthService = defineService("Health", (ctx) => ({
|
|
119
|
-
check: () => ({ status: "ok" }),
|
|
120
|
-
}));
|
|
14
|
+
### 서버 구성 및 실행
|
|
121
15
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
16
|
+
| 하려는 작업 | 읽을 파일 |
|
|
17
|
+
|-------------|-----------|
|
|
18
|
+
| Fastify 기반 서비스 서버를 생성하고 시작할 때 | [ServiceServer](./main/service-server.md) |
|
|
19
|
+
| `new ServiceServer()` 대신 팩토리 함수로 서버를 생성할 때 | [createServiceServer](./main/create-service-server.md) |
|
|
20
|
+
| 서버 생성 옵션(rootPath, port, ssl, auth, services)을 구성할 때 | [ServiceServerOptions](./types/service-server-options.md) |
|
|
125
21
|
|
|
126
|
-
|
|
127
|
-
rootPath: "/app",
|
|
128
|
-
port: 3000,
|
|
129
|
-
auth: { jwtSecret: "my-secret" },
|
|
130
|
-
services: [HealthService, UserService],
|
|
131
|
-
});
|
|
22
|
+
### 서비스 정의 및 인증
|
|
132
23
|
|
|
133
|
-
|
|
134
|
-
|
|
24
|
+
| 하려는 작업 | 읽을 파일 |
|
|
25
|
+
|-------------|-----------|
|
|
26
|
+
| 이름과 팩토리 함수로 서비스를 정의할 때 | [defineService](./core/define-service.md) |
|
|
27
|
+
| 서비스 또는 메서드에 로그인/역할 인증을 적용할 때 | [auth](./core/auth.md) |
|
|
28
|
+
| 서비스 팩토리에서 컨텍스트(인증 정보, 설정 파일 등)에 접근할 때 | [ServiceContext](./core/service-context.md) |
|
|
29
|
+
| 커스텀 전송 계층에서 서비스 실행 파이프라인을 직접 호출할 때 | [executeServiceMethod](./core/execute-service-method.md) |
|
|
135
30
|
|
|
136
|
-
### JWT
|
|
31
|
+
### JWT 인증
|
|
137
32
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
33
|
+
| 하려는 작업 | 읽을 파일 |
|
|
34
|
+
|-------------|-----------|
|
|
35
|
+
| JWT 페이로드 타입을 참조할 때 | [AuthTokenPayload](./auth/auth-token-payload.md) |
|
|
36
|
+
| 서버 외부에서 직접 JWT 토큰을 서명할 때 | [signJwt](./auth/sign-jwt.md) |
|
|
37
|
+
| 서버 외부에서 직접 JWT 토큰을 검증/디코딩할 때 | [verifyJwt](./auth/verify-jwt.md) |
|
|
143
38
|
|
|
144
|
-
|
|
145
|
-
// payload.data.userId === "123"
|
|
146
|
-
```
|
|
39
|
+
### 내장 서비스 등록
|
|
147
40
|
|
|
148
|
-
|
|
41
|
+
| 하려는 작업 | 읽을 파일 |
|
|
42
|
+
|-------------|-----------|
|
|
43
|
+
| 클라이언트에서 WebSocket으로 DB 연결/쿼리를 수행할 때 | [OrmService](./services/orm-service.md) |
|
|
44
|
+
| 클라이언트 앱(APK/EXE) 자동 업데이트를 제공할 때 | [AutoUpdateService](./services/auto-update-service.md) |
|
|
45
|
+
| 클라이언트에 앱 구조(메뉴/페이지) 정보를 제공할 때 | [AppStructureService](./services/app-structure-service.md) |
|
|
149
46
|
|
|
150
|
-
|
|
151
|
-
import { defineEvent } from "@simplysm/service-common";
|
|
47
|
+
### 전송 계층 (내부 동작 이해)
|
|
152
48
|
|
|
153
|
-
|
|
49
|
+
| 하려는 작업 | 읽을 파일 |
|
|
50
|
+
|-------------|-----------|
|
|
51
|
+
| WebSocket 메시지 라우팅/이벤트 브로드캐스트 동작을 이해할 때 | [WebSocketHandler](./transport-socket/websocket-handler.md) |
|
|
52
|
+
| WebSocket 연결 추상화(`ServiceContext.socket`의 타입)를 참조할 때 | [ServiceSocket](./transport-socket/service-socket.md) |
|
|
53
|
+
| HTTP API 요청 처리 동작을 이해할 때 | [handleHttpRequest](./transport-http/handle-http-request.md) |
|
|
54
|
+
| 파일 업로드 처리 동작을 이해할 때 | [handleUpload](./transport-http/handle-upload.md) |
|
|
55
|
+
| 정적 파일 서빙 동작을 이해할 때 | [handleStaticFile](./transport-http/handle-static-file.md) |
|
|
154
56
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
57
|
+
### 프로토콜 및 유틸리티
|
|
58
|
+
|
|
59
|
+
| 하려는 작업 | 읽을 파일 |
|
|
60
|
+
|-------------|-----------|
|
|
61
|
+
| 프로토콜 인코딩/디코딩 래퍼(worker 자동 위임)를 이해할 때 | [ServerProtocolWrapper](./protocol/server-protocol-wrapper.md) |
|
|
62
|
+
| `.config.json` 파일을 캐싱/자동 리로드로 읽을 때 | [getConfig](./utils/get-config.md) |
|
|
63
|
+
|
|
64
|
+
### 레거시
|
|
65
|
+
|
|
66
|
+
| 하려는 작업 | 읽을 파일 |
|
|
67
|
+
|-------------|-----------|
|
|
68
|
+
| V1 WebSocket 프로토콜 호환이 필요할 때 (자동 업데이트만 지원) | [handleV1Connection](./legacy/handle-v1-connection.md) |
|
|
158
69
|
|
|
159
70
|
## 이 패키지를 쓰지 말아야 할 때
|
|
160
71
|
|
|
161
72
|
- 브라우저 환경에서 서버에 연결 → `@simplysm/service-client`
|
|
162
73
|
- 서버-클라이언트 공유 타입/프로토콜 정의 → `@simplysm/service-common`
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
> API 이름으로 검색: [_api-index.md](./_api-index.md)
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# API Index — @simplysm/service-server
|
|
2
|
+
|
|
3
|
+
> API 이름을 알고 있을 때 해당 문서를 찾는 인덱스.
|
|
4
|
+
> 작업 기반으로 찾으려면 [README.md](./README.md) 참조.
|
|
5
|
+
|
|
6
|
+
## Main
|
|
7
|
+
|
|
8
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
9
|
+
|-----|------|------|-----------|
|
|
10
|
+
| `ServiceServer` | class | [service-server.md](./main/service-server.md) | 서버를 생성하고 시작할 때 |
|
|
11
|
+
| `ServerEventProxy` | interface | [service-server.md](./main/service-server.md#servereventproxy) | `getEvent()`의 반환 타입을 참조할 때 |
|
|
12
|
+
| `createServiceServer` | function | [create-service-server.md](./main/create-service-server.md) | 팩토리 함수로 서버를 생성할 때 |
|
|
13
|
+
|
|
14
|
+
## Types
|
|
15
|
+
|
|
16
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
17
|
+
|-----|------|------|-----------|
|
|
18
|
+
| `ServiceServerOptions` | interface | [service-server-options.md](./types/service-server-options.md) | 서버 생성 옵션을 구성할 때 |
|
|
19
|
+
|
|
20
|
+
## Auth
|
|
21
|
+
|
|
22
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
23
|
+
|-----|------|------|-----------|
|
|
24
|
+
| `AuthTokenPayload` | interface | [auth-token-payload.md](./auth/auth-token-payload.md) | JWT 페이로드 타입을 참조할 때 |
|
|
25
|
+
| `signJwt` | function | [sign-jwt.md](./auth/sign-jwt.md) | JWT 토큰을 서명할 때 |
|
|
26
|
+
| `verifyJwt` | function | [verify-jwt.md](./auth/verify-jwt.md) | JWT 토큰을 검증할 때 |
|
|
27
|
+
| `decodeJwt` | function | [verify-jwt.md](./auth/verify-jwt.md#decodejwt) | 검증 없이 토큰 내용을 확인할 때 |
|
|
28
|
+
|
|
29
|
+
## Core
|
|
30
|
+
|
|
31
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
32
|
+
|-----|------|------|-----------|
|
|
33
|
+
| `defineService` | function | [define-service.md](./core/define-service.md) | 서비스를 정의할 때 |
|
|
34
|
+
| `ServiceDefinition` | interface | [define-service.md](./core/define-service.md#servicedefinition) | 서비스 정의 타입을 참조할 때 |
|
|
35
|
+
| `ServiceMethods` | type | [define-service.md](./core/define-service.md#servicemethods) | 클라이언트 측 타입 공유를 위해 메서드 시그니처를 추출할 때 |
|
|
36
|
+
| `auth` | function | [auth.md](./core/auth.md) | 서비스 또는 메서드에 인증을 요구할 때 |
|
|
37
|
+
| `getServiceAuthPermissions` | function | [auth.md](./core/auth.md#getserviceauthpermissions) | `auth()`로 래핑된 함수의 권한 배열을 읽을 때 |
|
|
38
|
+
| `ServiceContext` | interface | [service-context.md](./core/service-context.md) | 서비스 팩토리에서 컨텍스트 타입을 참조할 때 |
|
|
39
|
+
| `createServiceContext` | function | [service-context.md](./core/service-context.md#createservicecontext) | 테스트 등에서 `ServiceContext`를 직접 생성할 때 |
|
|
40
|
+
| `executeServiceMethod` | function | [execute-service-method.md](./core/execute-service-method.md) | 커스텀 전송 계층에서 서비스 실행 파이프라인을 직접 호출할 때 |
|
|
41
|
+
|
|
42
|
+
## Transport - Socket
|
|
43
|
+
|
|
44
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
45
|
+
|-----|------|------|-----------|
|
|
46
|
+
| `WebSocketHandler` | interface | [websocket-handler.md](./transport-socket/websocket-handler.md) | WebSocket 메시지 라우팅 동작을 이해할 때 |
|
|
47
|
+
| `createWebSocketHandler` | function | [websocket-handler.md](./transport-socket/websocket-handler.md#createwebsockethandler) | 커스텀 WebSocket 핸들러를 생성할 때 |
|
|
48
|
+
| `ServiceSocket` | interface | [service-socket.md](./transport-socket/service-socket.md) | WebSocket 연결 추상화를 참조할 때 |
|
|
49
|
+
| `createServiceSocket` | function | [service-socket.md](./transport-socket/service-socket.md#createservicesocket) | 테스트 등에서 `ServiceSocket`을 직접 생성할 때 |
|
|
50
|
+
|
|
51
|
+
## Transport - HTTP
|
|
52
|
+
|
|
53
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
54
|
+
|-----|------|------|-----------|
|
|
55
|
+
| `handleHttpRequest` | function | [handle-http-request.md](./transport-http/handle-http-request.md) | HTTP API 요청 처리 동작을 이해할 때 |
|
|
56
|
+
| `handleUpload` | function | [handle-upload.md](./transport-http/handle-upload.md) | 파일 업로드 처리 동작을 이해할 때 |
|
|
57
|
+
| `handleStaticFile` | function | [handle-static-file.md](./transport-http/handle-static-file.md) | 정적 파일 서빙 동작을 이해할 때 |
|
|
58
|
+
|
|
59
|
+
## Protocol
|
|
60
|
+
|
|
61
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
62
|
+
|-----|------|------|-----------|
|
|
63
|
+
| `ServerProtocolWrapper` | interface | [server-protocol-wrapper.md](./protocol/server-protocol-wrapper.md) | 프로토콜 인코딩/디코딩 래퍼의 동작을 이해할 때 |
|
|
64
|
+
| `createServerProtocolWrapper` | function | [server-protocol-wrapper.md](./protocol/server-protocol-wrapper.md#createserverprotocolwrapper) | 커스텀 프로토콜 래퍼를 생성할 때 |
|
|
65
|
+
|
|
66
|
+
## Services
|
|
67
|
+
|
|
68
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
69
|
+
|-----|------|------|-----------|
|
|
70
|
+
| `OrmService` | const | [orm-service.md](./services/orm-service.md) | DB 연결을 서비스 계층에서 제공할 때 |
|
|
71
|
+
| `OrmServiceType` | type | [orm-service.md](./services/orm-service.md#ormservicetype) | 클라이언트에서 ORM 서비스 타입을 참조할 때 |
|
|
72
|
+
| `AutoUpdateService` | const | [auto-update-service.md](./services/auto-update-service.md) | 클라이언트 앱 자동 업데이트를 제공할 때 |
|
|
73
|
+
| `AutoUpdateServiceType` | type | [auto-update-service.md](./services/auto-update-service.md#autoupdateservicetype) | 클라이언트에서 자동 업데이트 서비스 타입을 참조할 때 |
|
|
74
|
+
| `AppStructureService` | function | [app-structure-service.md](./services/app-structure-service.md) | 앱 구조 정보를 클라이언트에 제공할 때 |
|
|
75
|
+
| `AppStructureServiceType` | type | [app-structure-service.md](./services/app-structure-service.md#appstructureservicetype) | 클라이언트에서 앱 구조 서비스 타입을 참조할 때 |
|
|
76
|
+
|
|
77
|
+
## Utils
|
|
78
|
+
|
|
79
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
80
|
+
|-----|------|------|-----------|
|
|
81
|
+
| `getConfig` | function | [get-config.md](./utils/get-config.md) | `.config.json` 파일을 캐싱/자동 리로드로 읽을 때 |
|
|
82
|
+
|
|
83
|
+
## Legacy
|
|
84
|
+
|
|
85
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
86
|
+
|-----|------|------|-----------|
|
|
87
|
+
| `handleV1Connection` | function | [handle-v1-connection.md](./legacy/handle-v1-connection.md) | V1 WebSocket 프로토콜 호환이 필요할 때 |
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
# handleV1Connection
|
|
1
|
+
# `handleV1Connection`
|
|
2
|
+
|
|
3
|
+
> **읽어야 하는 상황**: V1 WebSocket 프로토콜과의 호환이 필요할 때. 자동 업데이트(`SdAutoUpdateService.getLastVersion`)만 지원하고, 그 외 모든 요청은 업그레이드 필요 에러를 반환한다.
|
|
2
4
|
|
|
3
5
|
V1 레거시 WebSocket 프로토콜 호환 레이어. 자동 업데이트(`SdAutoUpdateService.getLastVersion`)만 지원하고, 그 외 모든 요청은 업그레이드 필요 에러를 반환한다.
|
|
4
6
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
# ServiceServer
|
|
1
|
+
# `ServiceServer`
|
|
2
|
+
|
|
3
|
+
> **읽어야 하는 상황**: Fastify 기반 서비스 서버를 생성하고 시작할 때. 팩토리 함수를 선호하면 [`createServiceServer`](./create-service-server.md) 참조.
|
|
2
4
|
|
|
3
5
|
Fastify를 래핑한 서비스 서버 클래스. WebSocket/HTTP 이중 전송, JWT 인증, 이벤트 브로드캐스트, graceful shutdown을 처리한다. `EventEmitter<{ ready: void; close: void }>`를 확장한다.
|
|
4
6
|
|
package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-http-request.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
# handleHttpRequest
|
|
1
|
+
# `handleHttpRequest`
|
|
2
|
+
|
|
3
|
+
> **읽어야 하는 상황**: HTTP API 요청(`/api/:service/:method`) 처리 동작을 이해할 때. `ServiceServer`가 내부적으로 사용한다.
|
|
2
4
|
|
|
3
5
|
GET/POST `/api/:service/:method` 경로의 HTTP 요청을 처리한다. `x-sd-client-name` 헤더가 필수이며, `Authorization` 헤더가 있으면 JWT 토큰을 검증한다.
|
|
4
6
|
|
|
@@ -8,92 +8,29 @@
|
|
|
8
8
|
npm install @simplysm/storage
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
## 하려는 작업 →
|
|
11
|
+
## 하려는 작업 → 읽을 파일
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|------|----------------|
|
|
15
|
-
| FTP/SFTP 서버에 파일 업로드/다운로드 | [`StorageFactory`](./factory/storage-factory.md) |
|
|
16
|
-
| 프로토콜별 구현 차이 확인 (FTP/FTPS) | [`FtpStorageClient`](./clients/ftp-storage-client.md) |
|
|
17
|
-
| SFTP 인증 방식 (패스워드/SSH 키) 확인 | [`SftpStorageClient`](./clients/sftp-storage-client.md) |
|
|
18
|
-
| 스토리지 작업을 추상화하는 함수 작성 | [`StorageClient`](./types/storage-client.md) |
|
|
19
|
-
| 연결 설정 타입 확인 | [`StorageConnConfig`](./types/storage-conn-config.md) |
|
|
13
|
+
### 파일 전송
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
| 하려는 작업 | 읽을 파일 |
|
|
16
|
+
|-------------|-----------|
|
|
17
|
+
| FTP/FTPS/SFTP 서버에 파일 업로드·다운로드·목록 조회 | [`StorageFactory`](./factory/storage-factory.md) |
|
|
18
|
+
| FTP/FTPS 연결을 직접 생명주기 관리 (장시간 연결 유지 등) | [`FtpStorageClient`](./clients/ftp-storage-client.md) |
|
|
19
|
+
| SFTP 연결을 직접 생명주기 관리하거나 SSH 키 인증 방식 확인 | [`SftpStorageClient`](./clients/sftp-storage-client.md) |
|
|
22
20
|
|
|
23
|
-
###
|
|
21
|
+
### 타입 활용
|
|
24
22
|
|
|
25
|
-
|
|
|
26
|
-
|
|
27
|
-
| [`
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
| Entry | Kind | 언제 쓰나 |
|
|
32
|
-
|-------|------|-----------|
|
|
33
|
-
| [`FtpStorageClient`](./clients/ftp-storage-client.md) | class | FTP/FTPS 클라이언트를 직접 생명주기 관리해야 할 때 |
|
|
34
|
-
| [`SftpStorageClient`](./clients/sftp-storage-client.md) | class | SFTP 클라이언트를 직접 생명주기 관리해야 할 때 |
|
|
35
|
-
|
|
36
|
-
### Types
|
|
37
|
-
|
|
38
|
-
| Entry | Kind | 언제 쓰나 |
|
|
39
|
-
|-------|------|-----------|
|
|
40
|
-
| [`StorageClient`](./types/storage-client.md) | interface | 스토리지 작업을 프로토콜 무관하게 추상화하는 함수 시그니처에 사용할 때 |
|
|
41
|
-
| [`StorageConnConfig`](./types/storage-conn-config.md) | interface | 연결 설정 객체를 타입으로 지정할 때 |
|
|
42
|
-
| [`FileInfo`](./types/file-info.md) | interface | `list()` 반환값을 처리할 때 |
|
|
43
|
-
|
|
44
|
-
## Usage Examples
|
|
45
|
-
|
|
46
|
-
### SFTP로 파일 업로드 (StorageFactory 사용 권장)
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
import { StorageFactory } from "@simplysm/storage";
|
|
50
|
-
|
|
51
|
-
await StorageFactory.connect(
|
|
52
|
-
"sftp",
|
|
53
|
-
{ host: "sftp.example.com", user: "user", password: "pass" },
|
|
54
|
-
async (storage) => {
|
|
55
|
-
await storage.mkdir("/remote/dir");
|
|
56
|
-
await storage.put("/local/file.txt", "/remote/dir/file.txt");
|
|
57
|
-
},
|
|
58
|
-
);
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
콜백이 완료되거나 예외가 발생하면 자동으로 연결이 종료된다.
|
|
62
|
-
|
|
63
|
-
### FTP로 파일 목록 조회 및 다운로드
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
import { StorageFactory } from "@simplysm/storage";
|
|
67
|
-
|
|
68
|
-
const files = await StorageFactory.connect(
|
|
69
|
-
"ftp",
|
|
70
|
-
{ host: "ftp.example.com", port: 21, user: "user", password: "pass" },
|
|
71
|
-
async (storage) => {
|
|
72
|
-
const list = await storage.list("/data");
|
|
73
|
-
for (const file of list.filter((f) => f.isFile)) {
|
|
74
|
-
const content = await storage.readFile(`/data/${file.name}`);
|
|
75
|
-
// content는 Bytes (Uint8Array)
|
|
76
|
-
}
|
|
77
|
-
return list;
|
|
78
|
-
},
|
|
79
|
-
);
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### SSH 키 인증으로 SFTP 연결 (비밀번호 생략)
|
|
83
|
-
|
|
84
|
-
```typescript
|
|
85
|
-
import { StorageFactory } from "@simplysm/storage";
|
|
86
|
-
|
|
87
|
-
await StorageFactory.connect(
|
|
88
|
-
"sftp",
|
|
89
|
-
{ host: "sftp.example.com", user: "user" }, // password 생략 → SSH agent/키 파일 인증
|
|
90
|
-
async (storage) => {
|
|
91
|
-
const list = await storage.list("/home/user");
|
|
92
|
-
},
|
|
93
|
-
);
|
|
94
|
-
```
|
|
23
|
+
| 하려는 작업 | 읽을 파일 |
|
|
24
|
+
|-------------|-----------|
|
|
25
|
+
| 프로토콜 무관하게 스토리지 작업을 추상화하는 함수 시그니처 작성 | [`StorageClient`](./types/storage-client.md) |
|
|
26
|
+
| 연결 설정 객체의 타입 확인 | [`StorageConnConfig`](./types/storage-conn-config.md) |
|
|
27
|
+
| `list()` 반환값의 구조 확인 | [`FileInfo`](./types/file-info.md) |
|
|
95
28
|
|
|
96
29
|
## 이 패키지를 쓰지 말아야 할 때
|
|
97
30
|
|
|
98
31
|
- 브라우저 환경에서 파일 업로드/다운로드 → 이 패키지는 Node.js 전용이다
|
|
99
32
|
- HTTP/S3 등 FTP/SFTP 이외의 프로토콜 → 이 패키지는 FTP/FTPS/SFTP만 지원한다
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
> API 이름으로 검색: [_api-index.md](./_api-index.md)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# API Index — @simplysm/storage
|
|
2
|
+
|
|
3
|
+
> API 이름을 알고 있을 때 해당 문서를 찾는 인덱스.
|
|
4
|
+
> 작업 기반으로 찾으려면 [README.md](./README.md) 참조.
|
|
5
|
+
|
|
6
|
+
## Factory
|
|
7
|
+
|
|
8
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
9
|
+
|-----|------|------|-----------|
|
|
10
|
+
| `StorageFactory` | class | [storage-factory.md](./factory/storage-factory.md) | 스토리지 서버에 연결하여 파일 작업을 수행할 때 (기본 진입점) |
|
|
11
|
+
|
|
12
|
+
## Clients
|
|
13
|
+
|
|
14
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
15
|
+
|-----|------|------|-----------|
|
|
16
|
+
| `FtpStorageClient` | class | [ftp-storage-client.md](./clients/ftp-storage-client.md) | FTP/FTPS 클라이언트를 직접 생명주기 관리해야 할 때 |
|
|
17
|
+
| `SftpStorageClient` | class | [sftp-storage-client.md](./clients/sftp-storage-client.md) | SFTP 클라이언트를 직접 생명주기 관리해야 할 때 |
|
|
18
|
+
|
|
19
|
+
## Types
|
|
20
|
+
|
|
21
|
+
| API | Kind | 문서 | 언제 쓰나 |
|
|
22
|
+
|-----|------|------|-----------|
|
|
23
|
+
| `StorageClient` | interface | [storage-client.md](./types/storage-client.md) | 스토리지 작업을 프로토콜 무관하게 추상화하는 함수 시그니처에 사용할 때 |
|
|
24
|
+
| `StorageConnConfig` | interface | [storage-conn-config.md](./types/storage-conn-config.md) | 연결 설정 객체를 타입으로 지정할 때 |
|
|
25
|
+
| `FileInfo` | interface | [file-info.md](./types/file-info.md) | `list()` 반환값을 처리할 때 |
|
|
26
|
+
| `StorageProtocol` | type | [storage-factory.md](./factory/storage-factory.md#storageprotocol) | `StorageFactory.connect()`의 `type` 파라미터 타입을 확인할 때 |
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# `FtpStorageClient`
|
|
2
2
|
|
|
3
|
-
FTP/FTPS
|
|
3
|
+
> **읽어야 하는 상황**: FTP/FTPS 연결을 직접 생명주기 관리해야 할 때 (장시간 연결 유지 등). 단일 작업 단위로 자동 관리하려면 [`StorageFactory`](../factory/storage-factory.md) 사용.
|
|
4
|
+
|
|
5
|
+
`basic-ftp` 라이브러리 기반. [`StorageClient`](../types/storage-client.md) 인터페이스를 구현한다.
|
|
4
6
|
|
|
5
7
|
## When to use
|
|
6
8
|
|