@next-bricks/vs 1.18.6 → 1.18.8
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/dist/bricks.json +1 -1
- package/dist/chunks/{3171.23131ce3.js → 3171.4a583a28.js} +2 -2
- package/dist/chunks/{5552.7607d462.js.map → 3171.4a583a28.js.map} +1 -1
- package/dist/chunks/{7146.1008ee66.js → 4765.5cc56374.js} +2 -2
- package/dist/chunks/{7146.1008ee66.js.map → 4765.5cc56374.js.map} +1 -1
- package/dist/chunks/{4837.c1b31522.js → 4837.08758d27.js} +2 -2
- package/dist/chunks/{4837.c1b31522.js.map → 4837.08758d27.js.map} +1 -1
- package/dist/chunks/{5552.7607d462.js → 5552.6e0050d5.js} +2 -2
- package/dist/chunks/{3171.23131ce3.js.map → 5552.6e0050d5.js.map} +1 -1
- package/dist/chunks/{5020.b59c4ffa.js → 5606.431e094a.js} +2 -2
- package/dist/chunks/5606.431e094a.js.map +1 -0
- package/dist/chunks/{4765.cc7388fe.js → 7146.d0cc1ce9.js} +2 -2
- package/dist/chunks/{4765.cc7388fe.js.map → 7146.d0cc1ce9.js.map} +1 -1
- package/dist/chunks/{7218.2c25b1e4.js → 7218.d60ecf1c.js} +2 -2
- package/dist/chunks/{7218.2c25b1e4.js.map → 7218.d60ecf1c.js.map} +1 -1
- package/dist/chunks/{9384.780670c6.js → 9384.53f19c90.js} +2 -2
- package/dist/chunks/{9384.780670c6.js.map → 9384.53f19c90.js.map} +1 -1
- package/dist/chunks/948.97fc5f58.js +3 -0
- package/dist/chunks/948.97fc5f58.js.map +1 -0
- package/dist/chunks/{code-editor.438c16ca.js → code-editor.8e9e9150.js} +2 -2
- package/dist/chunks/{code-editor.438c16ca.js.map → code-editor.8e9e9150.js.map} +1 -1
- package/dist/chunks/{main.38c74d81.js → main.a7bbf01e.js} +2 -2
- package/dist/chunks/{main.38c74d81.js.map → main.a7bbf01e.js.map} +1 -1
- package/dist/{index.77a4075f.js → index.56075bf3.js} +2 -2
- package/dist/{index.77a4075f.js.map → index.56075bf3.js.map} +1 -1
- package/package.json +2 -2
- package/dist/chunks/5020.b59c4ffa.js.map +0 -1
- package/dist/chunks/948.882a2d31.js +0 -3
- package/dist/chunks/948.882a2d31.js.map +0 -1
- /package/dist/chunks/{948.882a2d31.js.LICENSE.txt → 948.97fc5f58.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/5606.431e094a.js","mappings":"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","sources":["webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/utils/embeddedModelState.ts","webpack:///./src/code-editor/utils/jsSuggestInBrickYaml.ts","webpack:///../../src/FormItemElement.tsx","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/languages/cel-yaml.ts","webpack:///./src/code-editor/languages/cel-str.ts","webpack:///./src/code-editor/workers/spellCheckRemoteWorker.ts","webpack:///./src/code-editor/workers/yamlLinter.ts","webpack:///./src/code-editor/utils/editorId.ts","webpack:///./src/code-editor/widget/Placeholder.tsx","webpack:///./src/code-editor/index.css?aefa","webpack:///./src/code-editor/utils/setExtraLibs.ts","webpack:///../../src/brick_next_yaml.ts","webpack:///../../src/TokensProvider.ts","webpack:///./src/code-editor/utils/EditorService.ts","webpack:///../../shared/monaco-textmate/dist/esm/grammars/ lazy ^\\.\\/.*\\.json$ strict namespace object","webpack:///./src/code-editor/utils/isInEmbedded.ts","webpack:///./src/code-editor/utils/celCompletionProvider.ts","webpack:///./src/generated-actions.js","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/i18n.ts","webpack:///../../src/workers.ts","webpack:///./src/code-editor/languages/cel.ts","webpack:///../../src/prompt.ts","webpack:///../../src/postProcessByDiff.ts","webpack:///../../src/MonacoCopilotProvider.ts","webpack:///../../node_modules/monaco-editor/esm/vs/editor/common/services/findSectionHeaders.js","webpack:///./src/code-editor/constants.ts"],"sourcesContent":["export const EVALUATE_KEYWORD = [\n \"CTX\",\n \"STATE\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"APP\",\n \"ANCHOR\",\n \"HASH\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"INDEX\",\n \"SIZE\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH\",\n \"PROCESSORS\",\n \"QUERY\",\n \"QUERY_ARRAY\",\n \"SESSION_STORAGE\",\n \"TPL\",\n \"SYS\",\n \"BASE_URL\",\n \"IMG\",\n \"FN\",\n \"I18N\",\n \"I18N_TEXT\",\n \"PERMISSIONS\",\n \"THEME\",\n];\n\nexport const brickNextKeywords = [\n \"target\",\n \"targetRef\",\n \"properties\",\n \"events\",\n \"method\",\n \"callback\",\n \"success\",\n \"error\",\n \"action\",\n \"useProvider\",\n \"useChildren\",\n \"useBrick\",\n \"args\",\n \"if\",\n \"then\",\n];\n\nexport const Level = {\n /**\n * @deprecated Typo, use `hint` instead\n */\n hit: 1,\n hint: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n\nexport const builtInKeywordDeclare = `\n declare const DATA: any;\n declare const EVENT: CustomEvent<any>;\n declare const FLAGS: Record<string, boolean>;\n declare const ANCHOR: string | null;\n declare const HASH: string;\n declare namespace INSTALLED_APPS {\n function has(appId: string):boolean\n }\n declare const ITEM: any;\n declare const INDEX: number;\n declare const SIZE: number;\n declare namespace LOCAL_STORAGE {\n function getItem(name: string): string;\n }\n declare namespace SESSION_STORAGE {\n function getItem(name: string): string\n }\n declare const MEDIA: {\n breakpoint?: \"xLarge\" | \"large\" | \"medium\" | \"small\" | \"xSmall\";\n };\n declare const MISC: Record<string, any>;\n declare const PARAMS: URLSearchParams;\n declare const PROCESSORS: Record<string, Record<string, Function>>;\n declare const QUERY_ARRAY: Record<string, string[]>;\n declare const TPL: Record<string, any>;\n declare const PIPES: Record<string, Function>;\n declare const _: Record<string, any>;\n declare namespace SYS {\n const username:string;\n const userInstanceId:string;\n const org:number;\n const isAdmin: boolean;\n const accessRule:string;\n const csrfToken:string;\n const accessToken:string;\n const userShowValue:string[];\n }\n declare const BASE_URL: string;\n declare namespace IMG {\n function get(src: string): string;\n }\n declare function I18N(key: string, options?: string | Record<string, unknown>): string;\n declare function I18N_TEXT(data: {[language: string]: string}):string;\n declare namespace PERMISSIONS {\n function check(...action: string[]):boolean;\n }\n declare namespace THEME {\n function getTheme(): \"light\" | \"dark\" | \"dark-v2\";\n }\n`;\n","interface Range {\n startLineNumber: number;\n startColumn: number;\n endLineNumber: number;\n endColumn: number;\n}\n\nexport interface EmbeddedState {\n content?: string;\n offset?: number;\n range?: Range;\n}\n\nexport class EmbeddedModelContext {\n static #instance: Record<string, EmbeddedModelContext> = {};\n #id: string;\n #state: EmbeddedState = {};\n\n static getInstance(id: string) {\n if (!this.#instance[id]) {\n this.#instance[id] = new EmbeddedModelContext(id);\n }\n return this.#instance[id];\n }\n\n constructor(id: string) {\n this.#id = id;\n }\n\n updateState(state: EmbeddedState) {\n this.#state = state;\n }\n\n getState(): EmbeddedState {\n return this.#state;\n }\n}\n","import * as monaco from \"monaco-editor\";\nimport { builtInKeywordDeclare } from \"./constants.js\";\n\ninterface BlockContext {\n offset?: number;\n}\n\nexport function getEmbeddedJavascriptUri(value: monaco.Uri) {\n return monaco.Uri.parse(value.toString() + \".ts\");\n}\n\n// istanbul ignore next\nexport async function provideJsSuggestItems(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n embeddedContext: BlockContext\n) {\n const workerGetter = await monaco.languages.typescript.getJavaScriptWorker();\n const worker = await workerGetter(model.uri);\n const javascriptModel = monaco.editor.getModel(\n getEmbeddedJavascriptUri(model.uri)\n );\n\n const endOffset = model.getOffsetAt(position);\n const starOffset = embeddedContext?.offset ?? 0;\n\n const offset = endOffset - starOffset;\n\n const info = await worker.getCompletionsAtPosition(\n javascriptModel!.uri.toString(),\n offset!\n );\n\n const wordInfo = model.getWordUntilPosition(position);\n\n const wordRange = new monaco.Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn\n );\n\n const suggestions = (info?.entries ?? []).map((entry: any) => {\n let range = wordRange;\n\n if (entry.replacementSpan) {\n const p1 = model.getPositionAt(entry.replacementSpan.start);\n const p2 = model.getPositionAt(\n entry.replacementSpan.start + entry.replacementSpan.length\n );\n range = new monaco.Range(\n p1.lineNumber,\n p1.column,\n p2.lineNumber,\n p2.column\n );\n }\n\n return {\n uri: javascriptModel!.uri,\n position: position,\n offset: offset,\n range: range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: monaco.languages.CompletionItemKind.Property,\n };\n });\n\n return suggestions;\n}\n\nexport function getMicroAppDeclare() {\n // 不要主动提示不对用户公开的 APP 属性\n return `\ndeclare namespace APP {\n const name: string;\n const id: string;\n const homepage: string;\n const currentVersion: string;\n const config: object;\n const localeName: string;\n const localeTitle: string;\n}\n`;\n}\n\nexport function getBrickYamlBuiltInDeclare() {\n return [getMicroAppDeclare(), builtInKeywordDeclare].join(\"\\n\");\n}\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.highlight{box-shadow:rgb(74 170 189) 0px 1px 0px 0px}.pointer{cursor:pointer}.monaco-editor{outline-width:0;background:none}.monaco-editor .overflow-guard{border-radius:var(--antd-button-border-radius);border:1px solid var(--color-border-divider-line)}.code-editor-wrapper.error .overflow-guard{border-color:var(--antd-error-color)}.code-editor-wrapper{position:relative}.code-editor-wrapper.expanded{position:fixed;z-index:1000;top:0;left:0;right:0;bottom:0;padding:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.toolbar-wrapper{position:absolute;z-index:4;top:0;bottom:0;right:0;pointer-events:none;padding:15px 20px}.toolbar{pointer-events:auto;display:none;line-height:12px;font-size:12px;text-align:center;gap:10px;box-shadow:none;transition:none;border-radius:50%;border:none}.code-editor-wrapper:not(.expanded) .toolbar.sticky{position:sticky;top:15px}.code-editor-wrapper.expanded .toolbar-wrapper{right:40px;top:40px}.code-editor-wrapper:hover .toolbar{display:flex}.copy-icon,\n.expand-icon{opacity:0.5;cursor:pointer;font-size:16px}.copy-icon:hover,\n.expand-icon:hover{opacity:1}.monaco-editor.monaco-editor-v3 .find-widget > .find-part,\n.monaco-editor.monaco-editor-v3 .find-widget > .replace-part{margin-right:25px}.monaco-editor.monaco-editor-v3 .find-widget .button:not(.toggle){box-sizing:content-box}.monaco-editor.monaco-editor-v3 .sticky-line-number{text-align:initial;float:initial}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* eslint-disable no-useless-escape */\n// https://github.com/microsoft/monaco-editor/blob/8270c45a385a180a53fd8ef8e3a189b1471100ed/src/basic-languages/yaml/yaml.ts\nimport * as monaco from \"monaco-editor\";\n\nexport const conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: \"#\",\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"],\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n folding: {\n offSide: true,\n },\n onEnterRules: [\n {\n beforeText: /:\\s*$/,\n action: {\n indentAction: monaco.languages.IndentAction.Indent,\n },\n },\n ],\n};\n\nexport const language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: \".yaml.cel\",\n\n brackets: [\n { token: \"delimiter.bracket\", open: \"{\", close: \"}\" },\n { token: \"delimiter.square\", open: \"[\", close: \"]\" },\n ],\n\n keywords: [\n \"true\",\n \"True\",\n \"TRUE\",\n \"false\",\n \"False\",\n \"FALSE\",\n \"null\",\n \"Null\",\n \"NULL\",\n \"~\",\n ],\n\n numberInteger: /(?:0|[+-]?[0-9]+)/,\n numberFloat: /(?:0|[+-]?[0-9]+)(?:\\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,\n numberOctal: /0o[0-7]+/,\n numberHex: /0x[0-9a-fA-F]+/,\n numberInfinity: /[+-]?\\.(?:inf|Inf|INF)/,\n numberNaN: /\\.(?:nan|Nan|NAN)/,\n numberDate:\n /\\d{4}-\\d\\d-\\d\\d([Tt ]\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(( ?[+-]\\d\\d?(:\\d\\d)?)|Z)?)?/,\n\n escapes: /\\\\(?:[btnfr\\\\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,\n\n tokenizer: {\n root: [\n { include: \"@whitespace\" },\n { include: \"@comment\" },\n\n // Directive\n [/%[^ ]+.*$/, \"meta.directive\"],\n\n // Document Markers\n [/---/, \"operators.directivesEnd\"],\n [/\\.{3}/, \"operators.documentEnd\"],\n\n // Block Structure Indicators\n [/[-?:](?= )/, \"operators\"],\n\n { include: \"@anchor\" },\n { include: \"@tagHandle\" },\n { include: \"@flowCollections\" },\n { include: \"@blockStyle\" },\n\n // Numbers\n [/@numberInteger(?![ \\t]*\\S+)/, \"number\"],\n [/@numberFloat(?![ \\t]*\\S+)/, \"number.float\"],\n [/@numberOctal(?![ \\t]*\\S+)/, \"number.octal\"],\n [/@numberHex(?![ \\t]*\\S+)/, \"number.hex\"],\n [/@numberInfinity(?![ \\t]*\\S+)/, \"number.infinity\"],\n [/@numberNaN(?![ \\t]*\\S+)/, \"number.nan\"],\n [/@numberDate(?![ \\t]*\\S+)/, \"number.date\"],\n\n // Key:Value pair\n [\n /(\".*?\"|'.*?'|[^#'\"]*?)([ \\t]*)(:)( |$)/,\n [\"tag\", \"white\", \"operators\", \"white\"],\n ],\n\n { include: \"@flowScalars\" },\n { include: \"@flowExpression\" },\n\n // String nodes\n [\n /.+?(?=(\\s+#|$))/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@default\": \"string\",\n },\n },\n ],\n ],\n\n // Flow Collection: Flow Mapping\n object: [\n { include: \"@whitespace\" },\n { include: \"@comment\" },\n\n // Flow Mapping termination\n [/\\}/, \"@brackets\", \"@pop\"],\n\n // Flow Mapping delimiter\n [/,/, \"delimiter.comma\"],\n\n // Flow Mapping Key:Value delimiter\n [/:(?= )/, \"operators\"],\n\n // Flow Mapping Key:Value key\n [/(?:\".*?\"|'.*?'|[^,\\{\\[]+?)(?=: )/, \"tag\"],\n\n // Start Flow Style\n { include: \"@flowCollections\" },\n { include: \"@flowScalars\" },\n\n // Scalar Data types\n { include: \"@tagHandle\" },\n { include: \"@anchor\" },\n { include: \"@flowNumber\" },\n\n // Other value (keyword or string)\n [\n /[^\\},]+/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@default\": \"string\",\n },\n },\n ],\n ],\n\n // Flow Collection: Flow Sequence\n array: [\n { include: \"@whitespace\" },\n { include: \"@comment\" },\n\n // Flow Sequence termination\n [/\\]/, \"@brackets\", \"@pop\"],\n\n // Flow Sequence delimiter\n [/,/, \"delimiter.comma\"],\n\n // Start Flow Style\n { include: \"@flowCollections\" },\n { include: \"@flowScalars\" },\n\n // Scalar Data types\n { include: \"@tagHandle\" },\n { include: \"@anchor\" },\n { include: \"@flowNumber\" },\n\n // Other value (keyword or string)\n [\n /[^\\],]+/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@default\": \"string\",\n },\n },\n ],\n ],\n\n // First line of a Block Style\n multiString: [\n [\n /^( +)(<%(?:\\s|$))/,\n [\"string\", { token: \"@rematch\", next: \"@multiExpression.$1\" }],\n ],\n [/^( +).+$/, \"string\", \"@multiStringContinued.$1\"],\n ],\n\n // Further lines of a Block Style\n // Workaround for indentation detection\n multiStringContinued: [\n [\n /^( *)(.+)$/,\n {\n cases: {\n \"$1==$S2\": \"string\",\n \"@default\": { token: \"@rematch\", next: \"@popall\" },\n },\n },\n ],\n ],\n\n whitespace: [[/[ \\t\\r\\n]+/, \"white\"]],\n\n // Only line comments\n comment: [[/#.*$/, \"comment\"]],\n\n // Start Flow Collections\n flowCollections: [\n [/\\[/, \"@brackets\", \"@array\"],\n [/\\{/, \"@brackets\", \"@object\"],\n ],\n\n // Start Flow Scalars (quoted strings)\n flowScalars: [\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"],\n [/'([^'\\\\]|\\\\.)*$/, \"string.invalid\"],\n [/'/, \"string\", \"@singleQuotedString\"],\n [/\"/, \"string\", \"@doubleQuotedString\"],\n ],\n\n singleQuotedString: [\n { include: \"@expressionStart\" },\n [\n /(%>)(\\s*)(')/,\n [\n { token: \"delimiter\", bracket: \"@close\" },\n \"white\",\n { token: \"string\", next: \"@pop\" },\n ],\n ],\n [/[^']*'/, \"string\", \"@pop\"],\n ],\n\n doubleQuotedString: [\n { include: \"@expressionStart\" },\n [\n /(%>)(\\s*)(\")/,\n [\n { token: \"delimiter\", bracket: \"@close\" },\n \"white\",\n { token: \"string\", next: \"@pop\" },\n ],\n ],\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, \"string\", \"@pop\"],\n ],\n\n // Start Block Scalar\n blockStyle: [[/[>|][0-9]*[+-]?$/, \"operators\", \"@multiString\"]],\n\n // Numbers in Flow Collections (terminate with ,]})\n flowNumber: [\n [/@numberInteger(?=[ \\t]*[,\\]\\}])/, \"number\"],\n [/@numberFloat(?=[ \\t]*[,\\]\\}])/, \"number.float\"],\n [/@numberOctal(?=[ \\t]*[,\\]\\}])/, \"number.octal\"],\n [/@numberHex(?=[ \\t]*[,\\]\\}])/, \"number.hex\"],\n [/@numberInfinity(?=[ \\t]*[,\\]\\}])/, \"number.infinity\"],\n [/@numberNaN(?=[ \\t]*[,\\]\\}])/, \"number.nan\"],\n [/@numberDate(?=[ \\t]*[,\\]\\}])/, \"number.date\"],\n ],\n\n tagHandle: [[/\\![^ ]*/, \"tag\"]],\n\n anchor: [[/[&*][^ ]+/, \"namespace\"]],\n\n flowExpression: [\n { include: \"@expressionStart\" },\n [\n /(\\s+)(%>)(\\s*)/,\n [\n \"white\",\n { token: \"delimiter\", bracket: \"@close\" },\n { token: \"white\", next: \"@pop\" },\n ],\n ],\n ],\n\n expressionStart: [\n [\n /(\\s*)(<%)(\\s+)/,\n [\n \"white\",\n { token: \"delimiter\", bracket: \"@open\" },\n {\n token: \"white\",\n next: \"@expressionEmbedded\",\n nextEmbedded: \"text/cel\",\n },\n ],\n ],\n ],\n\n multiExpression: [\n [\n /(<%)/,\n {\n token: \"delimiter\",\n next: \"@expressionEmbedded\",\n nextEmbedded: \"text/cel\",\n bracket: \"@open\",\n },\n ],\n [\n /(%>)(\\s*)/,\n [\n { token: \"delimiter\", bracket: \"@close\" },\n { token: \"white\", next: \"@pop\" },\n ],\n ],\n [\n /^( *).+$/,\n {\n cases: {\n \"$1==$S2\": \"string\",\n \"@default\": { token: \"@rematch\", next: \"@popall\" },\n },\n },\n ],\n ],\n\n expressionEmbedded: [\n [/%>/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n ],\n },\n};\n\n/**\n * Register the extended yaml language, with CEL syntax highlighting supported.\n */\nexport function register(Monaco: typeof monaco, languageId = \"cel_yaml\") {\n Monaco.languages.register({\n id: languageId,\n extensions: [\".cel-yaml\"],\n mimetypes: [\"text/cel-yaml\"],\n });\n Monaco.languages.setLanguageConfiguration(languageId, conf);\n Monaco.languages.setMonarchTokensProvider(languageId, language);\n}\n","// https://github.com/microsoft/monaco-editor/blob/8270c45a385a180a53fd8ef8e3a189b1471100ed/src/basic-languages/yaml/yaml.ts\nimport * as monaco from \"monaco-editor\";\nimport { conf as confOfCel } from \"./cel\";\n\nexport const conf: monaco.languages.LanguageConfiguration = {\n brackets: confOfCel.brackets,\n autoClosingPairs: confOfCel.autoClosingPairs,\n};\n\nexport const language: monaco.languages.IMonarchLanguage = {\n tokenPostfix: \".yaml.str\",\n\n tokenizer: {\n root: [\n { include: \"@whitespace\" },\n { include: \"@expression\" },\n { include: \"@strings\" },\n ],\n\n expression: [\n [\n /<%/,\n {\n token: \"delimiter\",\n next: \"@expressionEmbedded\",\n nextEmbedded: \"text/cel\",\n bracket: \"@open\",\n },\n ],\n [/%>/, { token: \"delimiter\", bracket: \"@close\" }],\n ],\n\n expressionEmbedded: [\n [/%>/, { token: \"@rematch\", next: \"@pop\", nextEmbedded: \"@pop\" }],\n ],\n\n strings: [[/[^<]+|<(?!%)/, \"string\"]],\n\n whitespace: [[/[ \\t\\r\\n]+/, \"white\"]],\n },\n};\n\n/**\n * Register the cel_str language, that CEL is embedded in `<% %>` as a plain string.\n */\nexport function register(Monaco: typeof monaco, languageId = \"cel_str\") {\n Monaco.languages.register({\n id: languageId,\n extensions: [\".cel-str\"],\n mimetypes: [\"text/cel-str\"],\n });\n Monaco.languages.setLanguageConfiguration(languageId, conf);\n Monaco.languages.setMonarchTokensProvider(languageId, language);\n}\n","// istanbul ignore file\nimport { wrap } from \"comlink\";\nimport type {\n SpellCheckRequest,\n SpellCheckResponse,\n} from \"@next-shared/spell-check\";\n\nexport interface RemoteSpellCheckWorker {\n spellCheck(req: SpellCheckRequest): Promise<SpellCheckResponse>;\n}\n\nlet remoteWorkerPromise: Promise<RemoteSpellCheckWorker> | undefined;\n\nlet worker: Worker | undefined;\n\nexport function getRemoteSpellCheckWorker() {\n if (!remoteWorkerPromise) {\n remoteWorkerPromise = (async () => {\n const Remote = wrap<{ new (): RemoteSpellCheckWorker }>(getWorker());\n return await new Remote();\n })();\n }\n return remoteWorkerPromise;\n}\n\nfunction getWorker() {\n if (!worker) {\n worker = new Worker(new URL(\"./spellCheck.worker.ts\", import.meta.url));\n }\n return worker;\n}\n","// istanbul ignore file\nimport { wrap } from \"comlink\";\nimport type { LintRequest, LintResponse } from \"./lintYaml\";\n\nexport interface RemoteYamlLinterWorker {\n lint(req: LintRequest): Promise<LintResponse>;\n}\n\nlet remoteWorkerPromise: Promise<RemoteYamlLinterWorker> | undefined;\n\nlet worker: Worker | undefined;\n\nexport function getRemoteYamlLinterWorker() {\n if (!remoteWorkerPromise) {\n remoteWorkerPromise = (async () => {\n const Remote = wrap<{ new (): RemoteYamlLinterWorker }>(getWorker());\n return await new Remote();\n })();\n }\n return remoteWorkerPromise;\n}\n\nfunction getWorker() {\n if (!worker) {\n worker = new Worker(new URL(\"./yamlLinter.worker.ts\", import.meta.url));\n }\n return worker;\n}\n","let editorId: string;\n\nexport function setEditorId(id: string) {\n editorId = id;\n}\n\nexport function getEditorId() {\n return editorId;\n}\n","import * as monaco from \"monaco-editor\";\n\nexport class PlaceholderContentWidget implements monaco.editor.IContentWidget {\n private static readonly ID = \"editor.widget.placeholderHint\";\n\n private domNode: HTMLElement | undefined;\n\n private readonly placeholder: string;\n private readonly editor: monaco.editor.ICodeEditor;\n private readonly color: string;\n\n constructor(\n placeholder: string,\n editor: monaco.editor.ICodeEditor,\n color: string\n ) {\n this.placeholder = placeholder;\n this.editor = editor;\n this.color = color;\n // register a listener for editor code changes\n this.editor.onDidChangeModelContent(() => this.onDidChangeModelContent());\n // ensure that on initial load the placeholder is shown\n this.onDidChangeModelContent();\n }\n\n private onDidChangeModelContent(): void {\n if (this.editor?.getValue?.() === \"\") {\n this.editor.addContentWidget(this);\n } else {\n this.editor?.removeContentWidget?.(this);\n }\n }\n\n getId(): string {\n return PlaceholderContentWidget.ID;\n }\n\n getDomNode(): HTMLElement {\n if (!this.domNode) {\n this.domNode = document.createElement(\"div\");\n this.domNode.style.width = \"max-content\";\n this.domNode.style.pointerEvents = \"none\";\n this.domNode.textContent = this.placeholder;\n this.domNode.style.whiteSpace = \"break-spaces\";\n this.domNode.style.fontStyle = \"italic\";\n this.domNode.style.color = this.color;\n this.editor.applyFontInfo(this.domNode);\n }\n\n return this.domNode;\n }\n\n getPosition(): monaco.editor.IContentWidgetPosition | null {\n return {\n position: { lineNumber: 1, column: 1 },\n preference: [monaco.editor.ContentWidgetPositionPreference.EXACT],\n };\n }\n\n dispose(): void {\n this.editor?.removeContentWidget?.(this);\n }\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","import * as monaco from \"monaco-editor\";\nimport type { ExtraLib } from \"../interfaces.js\";\n\nlet previousDisposables: monaco.IDisposable[] | undefined;\n\nexport function setExtraLibs(\n libs: ExtraLib[] | undefined,\n options: {\n languageDefaults: \"javascriptDefaults\" | \"typescriptDefaults\";\n }\n): void {\n for (const disposable of previousDisposables ?? []) {\n disposable.dispose();\n }\n\n previousDisposables = libs?.map((lib) => {\n const uri = monaco.Uri.file(lib.filePath);\n const uriString = uri.toString();\n return monaco.languages.typescript[options.languageDefaults].addExtraLib(\n lib.content,\n uriString\n );\n });\n}\n","import * as monaco from \"monaco-editor\";\n\nconst conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: \"#\",\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"],\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n folding: {\n offSide: true,\n },\n onEnterRules: [\n {\n beforeText: /:\\s*$/,\n action: {\n indentAction: monaco.languages.IndentAction.Indent,\n },\n },\n ],\n};\n\n/**\n * Register the extended yaml language, with Brick Next expression syntax\n * highlighting supported.\n */\nexport function registerBrickNextYaml(Monaco: typeof monaco) {\n Monaco.languages.register({\n id: \"brick_next_yaml\",\n extensions: [\".yaml\", \".yml\"],\n mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n });\n Monaco.languages.setLanguageConfiguration(\"brick_next_yaml\", conf);\n}\n","import * as monaco from \"monaco-editor\";\nimport * as vsctm from \"vscode-textmate\";\nimport { loadWASM, OnigScanner, OnigString } from \"vscode-oniguruma\";\nimport wasm from \"vscode-oniguruma/release/onig.wasm\";\nimport { registerBrickNextYaml } from \"./brick_next_yaml.js\";\n\nconst languageToScope = new Map<string, string>();\nlanguageToScope.set(\"javascript\", \"source.js.jsx\");\nlanguageToScope.set(\"typescript\", \"source.tsx\");\nlanguageToScope.set(\"html\", \"text.html.basic\");\nlanguageToScope.set(\"markdown\", \"text.html.markdown\");\nlanguageToScope.set(\"xml\", \"text.xml\");\nlanguageToScope.set(\"css\", \"source.css\");\nlanguageToScope.set(\"json\", \"source.json\");\nlanguageToScope.set(\"python\", \"source.python\");\nlanguageToScope.set(\"go\", \"source.go\");\nlanguageToScope.set(\"java\", \"source.java\");\nlanguageToScope.set(\"shell\", \"source.shell\");\nlanguageToScope.set(\"powershell\", \"source.powershell\");\nlanguageToScope.set(\"yaml\", \"source.yaml\");\nlanguageToScope.set(\"brick_next_yaml\", \"source.brick_next_yaml\");\n\nexport const languages = [...languageToScope.keys()];\n\nregisterBrickNextYaml(monaco);\n\nconst grammars = new Map<string, string>([\n [\"source.js\", \"JavaScript.tmLanguage\"],\n [\"source.js.jsx\", \"JavaScriptReact.tmLanguage\"],\n [\"source.ts\", \"TypeScript.tmLanguage\"],\n [\"source.tsx\", \"TypeScriptReact.tmLanguage\"],\n [\"text.html.basic\", \"html.tmLanguage\"],\n [\"text.html.derivative\", \"html-derivative.tmLanguage\"],\n [\"text.html.markdown\", \"markdown.tmLanguage\"],\n [\"text.xml\", \"xml.tmLanguage\"],\n [\"source.css\", \"css.tmLanguage\"],\n [\"source.json\", \"JSON.tmLanguage\"],\n [\"source.python\", \"MagicPython.tmLanguage\"],\n [\"source.go\", \"go.tmLanguage\"],\n [\"source.java\", \"java.tmLanguage\"],\n [\"source.shell\", \"shell-unix-bash.tmLanguage\"],\n [\"source.powershell\", \"powershell.tmLanguage\"],\n [\"source.yaml\", \"yaml.tmLanguage\"],\n [\"source.yaml.1.0\", \"yaml-1.0.tmLanguage\"],\n [\"source.yaml.1.1\", \"yaml-1.1.tmLanguage\"],\n [\"source.yaml.1.2\", \"yaml-1.2.tmLanguage\"],\n [\"source.yaml.1.3\", \"yaml-1.3.tmLanguage\"],\n [\"source.yaml.embedded\", \"yaml-embedded.tmLanguage\"],\n [\"source.brick_next_yaml\", \"yaml.tmLanguage\"],\n [\"placeholder.injection.string.unquoted\", \"brick-next/injection-unquoted\"],\n [\n \"placeholder.injection.string.quoted.double\",\n \"brick-next/injection-quoted-double\",\n ],\n [\n \"placeholder.injection.string.quoted.single\",\n \"brick-next/injection-quoted-single\",\n ],\n [\"builtin.entity.injection.string\", \"brick-next/builtin-entity\"],\n]);\n\nconst wasmPromise = fetch(wasm)\n .then((response) => response.arrayBuffer())\n .then((buffer) => loadWASM({ data: buffer }));\n\nconst registry = new vsctm.Registry({\n onigLib: wasmPromise.then(() => {\n return {\n createOnigScanner: (sources) => new OnigScanner(sources),\n createOnigString: (str) => new OnigString(str),\n };\n }),\n async loadGrammar(scopeName) {\n const grammarFile = grammars.get(scopeName);\n if (grammarFile) {\n const grammar = (await import(`./grammars/${grammarFile}.json`)).default;\n if (scopeName === \"source.brick_next_yaml\") {\n return {\n ...grammar,\n scopeName,\n };\n }\n return grammar;\n }\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line no-console\n console.warn(`No grammar found for scope: ${scopeName}`);\n }\n return null;\n },\n getInjections(scopeName) {\n if (scopeName === \"source.brick_next_yaml\") {\n return [\n \"placeholder.injection.string.unquoted\",\n \"placeholder.injection.string.quoted.double\",\n \"placeholder.injection.string.quoted.single\",\n \"builtin.entity.injection.string\",\n ];\n }\n return [];\n },\n});\n\nconst providers = new Map<string, Promise<monaco.languages.TokensProvider>>();\n\nconst initializedLanguages = new Set<string>();\n\nexport function initializeTokensProvider(language: string) {\n if (initializedLanguages.has(language)) {\n return;\n }\n initializedLanguages.add(language);\n\n const scopeName = languageToScope.get(language);\n if (scopeName) {\n monaco.languages.setTokensProvider(\n language,\n createTokensProvider(scopeName)\n );\n }\n}\n\nfunction createTokensProvider(\n scopeName: string\n): Promise<monaco.languages.TokensProvider> {\n let provider = providers.get(scopeName);\n if (!provider) {\n provider = doCreateTokensProvider(scopeName);\n providers.set(scopeName, provider);\n }\n return provider;\n}\n\nasync function doCreateTokensProvider(\n scopeName: string\n): Promise<monaco.languages.TokensProvider> {\n const grammar = await registry.loadGrammar(scopeName);\n if (!grammar) {\n throw new Error(\"Failed to load grammar\");\n }\n return {\n getInitialState() {\n return vsctm.INITIAL;\n },\n tokenize(line, state: vsctm.StateStack) {\n const lineTokens = grammar.tokenizeLine(line, state);\n const tokens: monaco.languages.IToken[] = [];\n for (const token of lineTokens.tokens) {\n tokens.push({\n startIndex: token.startIndex,\n // Monaco doesn't support an array of scopes\n scopes: token.scopes[token.scopes.length - 1],\n });\n }\n return { tokens, endState: lineTokens.ruleStack };\n },\n };\n}\n","import * as monaco from \"monaco-editor\";\n\nexport let currentEditor: monaco.editor.IStandaloneCodeEditor | null = null;\n\nexport function switchEditor(\n editor: monaco.editor.IStandaloneCodeEditor\n): boolean {\n if (currentEditor === editor) {\n return false;\n }\n currentEditor = editor;\n return true;\n}\n\nexport function disposeEditor(\n editor: monaco.editor.IStandaloneCodeEditor\n): void {\n if (currentEditor === editor) {\n currentEditor = null;\n }\n editor.getModel()?.dispose();\n editor.dispose();\n}\n\nexport function isCurrentEditor(\n editor: monaco.editor.IStandaloneCodeEditor\n): boolean {\n return currentEditor === editor;\n}\n","var map = {\n\t\"./JSON.tmLanguage.json\": [\n\t\t33887,\n\t\t3887\n\t],\n\t\"./JavaScript.tmLanguage.json\": [\n\t\t43272,\n\t\t3272\n\t],\n\t\"./JavaScriptReact.tmLanguage.json\": [\n\t\t28267,\n\t\t8267\n\t],\n\t\"./MagicPython.tmLanguage.json\": [\n\t\t42370,\n\t\t2370\n\t],\n\t\"./TypeScript.tmLanguage.json\": [\n\t\t66272,\n\t\t6272\n\t],\n\t\"./TypeScriptReact.tmLanguage.json\": [\n\t\t96595,\n\t\t6595\n\t],\n\t\"./brick-next/builtin-entity.json\": [\n\t\t22385,\n\t\t2385\n\t],\n\t\"./brick-next/injection-quoted-double.json\": [\n\t\t13354,\n\t\t3354\n\t],\n\t\"./brick-next/injection-quoted-single.json\": [\n\t\t51427,\n\t\t1427\n\t],\n\t\"./brick-next/injection-unquoted.json\": [\n\t\t49519,\n\t\t9519\n\t],\n\t\"./css.tmLanguage.json\": [\n\t\t53872,\n\t\t3872\n\t],\n\t\"./go.tmLanguage.json\": [\n\t\t62859,\n\t\t2859\n\t],\n\t\"./html-derivative.tmLanguage.json\": [\n\t\t71442,\n\t\t1442\n\t],\n\t\"./html.tmLanguage.json\": [\n\t\t96206,\n\t\t6206\n\t],\n\t\"./java.tmLanguage.json\": [\n\t\t26485,\n\t\t6485\n\t],\n\t\"./markdown.tmLanguage.json\": [\n\t\t45014,\n\t\t5014\n\t],\n\t\"./powershell.tmLanguage.json\": [\n\t\t58350,\n\t\t8350\n\t],\n\t\"./shell-unix-bash.tmLanguage.json\": [\n\t\t51545,\n\t\t1545\n\t],\n\t\"./xml.tmLanguage.json\": [\n\t\t29041,\n\t\t1422\n\t],\n\t\"./yaml-1.0.tmLanguage.json\": [\n\t\t77384,\n\t\t7384\n\t],\n\t\"./yaml-1.1.tmLanguage.json\": [\n\t\t42953,\n\t\t2953\n\t],\n\t\"./yaml-1.2.tmLanguage.json\": [\n\t\t60658,\n\t\t658\n\t],\n\t\"./yaml-1.3.tmLanguage.json\": [\n\t\t91867,\n\t\t1867\n\t],\n\t\"./yaml-embedded.tmLanguage.json\": [\n\t\t87825,\n\t\t7825\n\t],\n\t\"./yaml.tmLanguage.json\": [\n\t\t78816,\n\t\t8816\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 1 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 81076;\nmodule.exports = webpackAsyncContext;","import * as monaco from \"monaco-editor\";\n\nexport function isInEmbedded(\n model: monaco.editor.ITextModel,\n position: monaco.Position\n) {\n const previousStart = findPreviousMatch(model, \"<%\", position);\n if (!previousStart) {\n return false;\n }\n const nextEnd = findNextMatch(model, \"%>\", position);\n if (!nextEnd) {\n return false;\n }\n const previousEnd = findPreviousMatch(model, \"%>\", position);\n if (\n previousEnd &&\n previousStart.range\n .getEndPosition()\n .isBefore(previousEnd.range.getStartPosition())\n ) {\n return false;\n }\n const nextStart = findNextMatch(model, \"<%\", position);\n if (\n nextStart &&\n nextStart.range.getStartPosition().isBefore(nextEnd.range.getEndPosition())\n ) {\n return false;\n }\n return true;\n}\n\n/**\n * Find the previous match of the word in the model, but no loops to the end.\n */\nfunction findPreviousMatch(\n model: monaco.editor.ITextModel,\n word: string,\n position: monaco.Position\n) {\n const match = model.findPreviousMatch(\n word,\n position,\n false,\n false,\n null,\n false\n );\n if (match && position.isBefore(match.range.getStartPosition())) {\n return null;\n }\n return match;\n}\n\n/**\n * Find the next match of the word in the model, but no loops to the beginning.\n */\nfunction findNextMatch(\n model: monaco.editor.ITextModel,\n word: string,\n position: monaco.Position\n) {\n const match = model.findNextMatch(word, position, false, false, null, false);\n if (match && match.range.getEndPosition().isBefore(position)) {\n return null;\n }\n return match;\n}\n","import * as monaco from \"monaco-editor\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { constants, instanceMembers } from \"../languages/cel\";\nimport { getEditorId } from \"./editorId\";\nimport { isInEmbedded } from \"./isInEmbedded\";\nimport type { MixedCompleter } from \"../interfaces\";\n\nconst BUILTIN_MEMBERS: Record<string, string[]> = {\n request: [\"uri\", \"query\", \"header\", \"body\"],\n};\n\n/**\n * When user types \"<\", provide the completion item \"<% | %>\",\n * in which, `|` represents the position of the cursor.\n */\nexport function provideEmbeddedCelCompletionItems(\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n): monaco.languages.CompletionList {\n if (context.triggerCharacter !== \"<\" || isInEmbedded(model, position)) {\n return getEmptySuggestions();\n }\n\n // Handle: <|\n // Or: \"<|\"\n // Or: '<|'\n const nearby = model.getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endLineNumber: position.lineNumber,\n endColumn: position.column + 1,\n });\n if (!/^(['\"]?)<\\1$/.test(nearby.trim())) {\n return getEmptySuggestions();\n }\n\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.endColumn,\n };\n\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"CEL body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range,\n },\n ],\n };\n}\n\n/**\n * Provide common completion items for CEL language.\n * Such as `size` and `base64`.\n */\nexport function celCommonCompletionProviderFactory(\n lang: string\n): monaco.languages.CompletionItemProvider {\n return {\n triggerCharacters: [\".\"],\n provideCompletionItems(model, position, context) {\n if (lang !== \"cel\" && !isInEmbedded(model, position)) {\n return getEmptySuggestions();\n }\n\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.endColumn,\n };\n\n const previousWord = model.getWordUntilPosition(\n new monaco.Position(position.lineNumber, word.startColumn - 1)\n );\n\n // Handle: foo.|\n // Or: foo.x|\n if (\n context.triggerCharacter === \".\" ||\n model\n .getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: previousWord.endColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.startColumn,\n })\n .trim() === \".\"\n ) {\n const completer =\n previousWord.word &&\n hasOwnProperty(BUILTIN_MEMBERS, previousWord.word)\n ? BUILTIN_MEMBERS[previousWord.word]\n : undefined;\n\n if (completer) {\n return {\n suggestions: completer.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Method,\n range,\n })),\n };\n }\n\n // Do not provide member suggestions for constants.\n if ((constants as readonly string[]).includes(previousWord.word)) {\n return getEmptySuggestions();\n }\n\n return {\n suggestions: instanceMembers.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Method,\n range,\n })),\n };\n }\n\n // Handle: x|\n return {\n suggestions: constants.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n },\n };\n}\n\n/**\n * Provide specific completion items for CEL language.\n * Such as `step.*`\n */\nexport function celSpecificCompletionProviderFactory(\n lang: string,\n id: string,\n completers: MixedCompleter[]\n): monaco.languages.CompletionItemProvider {\n return {\n triggerCharacters: [\".\"],\n provideCompletionItems(model, position, context) {\n if (\n id !== getEditorId() ||\n (lang !== \"cel\" && !isInEmbedded(model, position))\n ) {\n return getEmptySuggestions();\n }\n\n const word = model.getWordUntilPosition(position);\n const previousWord = model.getWordUntilPosition(\n new monaco.Position(position.lineNumber, word.startColumn - 1)\n );\n\n if (\n context.triggerCharacter !== \".\" &&\n model\n .getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: previousWord.endColumn,\n endLineNumber: position.lineNumber,\n endColumn: word.startColumn,\n })\n .trim() !== \".\"\n ) {\n return getEmptySuggestions();\n }\n\n let members: string[] | undefined;\n if (previousWord.word) {\n for (const completer of completers) {\n if (\n completer.type === \"members\" &&\n hasOwnProperty(completer.members, previousWord.word)\n ) {\n members = completer.members[previousWord.word];\n }\n }\n }\n\n if (!members) {\n return getEmptySuggestions();\n }\n\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n return {\n suggestions: members.map((label) => ({\n label,\n insertText: label,\n kind: monaco.languages.CompletionItemKind.Method,\n range,\n })),\n };\n },\n };\n}\n\nfunction getEmptySuggestions(): monaco.languages.CompletionList {\n return { suggestions: [] };\n}\n","export default [\"analytics.event\",\"console.error\",\"console.info\",\"console.log\",\"console.warn\",\"context.assign\",\"context.load\",\"context.refresh\",\"context.replace\",\"context.set\",\"event.preventDefault\",\"event.stopPropagation\",\"formstate.update\",\"handleHttpError\",\"history.block\",\"history.goBack\",\"history.goForward\",\"history.push\",\"history.pushAnchor\",\"history.pushQuery\",\"history.reload\",\"history.replace\",\"history.replaceQuery\",\"history.unblock\",\"localStorage.removeItem\",\"localStorage.setItem\",\"location.assign\",\"location.reload\",\"menu.clearMenuCache\",\"menu.clearMenuTitleCache\",\"message.error\",\"message.info\",\"message.subscribe\",\"message.success\",\"message.unsubscribe\",\"message.warn\",\"mode.setDashboardMode\",\"mode.setDefaultMode\",\"parent.postMessage\",\"preview.debug\",\"sessionStorage.removeItem\",\"sessionStorage.setItem\",\"state.load\",\"state.refresh\",\"state.set\",\"state.update\",\"theme.setDarkTheme\",\"theme.setLightTheme\",\"theme.setTheme\",\"tpl.dispatchEvent\",\"window.open\",\"window.postMessage\"];","import * as monaco from \"monaco-editor\";\nimport { brickNextKeywords } from \"./constants.js\";\nimport { getEditorId } from \"./editorId.js\";\nimport { TokenConfig } from \"../index.jsx\";\nimport { AdvancedCompleterMap } from \"../interfaces.js\";\nimport { provideJsSuggestItems } from \"../utils/jsSuggestInBrickYaml.js\";\nimport { EmbeddedModelContext } from \"../utils/embeddedModelState.js\";\nimport builtinActions from \"../../generated-actions.js\";\n\nconst findKeys = (\n model: monaco.editor.ITextModel,\n range: monaco.Range | monaco.editor.IWordAtPosition,\n line: number\n) => {\n const curLevelKeys: string[] = [];\n const keyList: string[] = [];\n let parentKey = \"\";\n let i = line;\n let startColumn = range.startColumn;\n while (i > 0) {\n const prefixLineWord = model.getValueInRange({\n startLineNumber: i,\n endLineNumber: i,\n startColumn: 0,\n endColumn: Infinity,\n });\n const matchWord = prefixLineWord.match(/^([\\s|-]*)(\\w+)(?=:)/);\n if (matchWord) {\n const [, wordSpace, key] = matchWord;\n if (wordSpace.length === range.startColumn - 1) {\n curLevelKeys.unshift(key);\n }\n if (wordSpace.length < startColumn - 1) {\n !parentKey && (parentKey = key);\n startColumn = wordSpace.length;\n keyList.unshift(key);\n }\n }\n i--;\n }\n return {\n curLevelKeys,\n keyList,\n parentKey,\n };\n};\n\nconst getPrefixWord = (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n tokenConfig: TokenConfig | undefined\n): {\n word: string | undefined;\n token: string;\n} => {\n const word = model.getWordUntilPosition(position);\n const prefixToken = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - word.word.length - 1,\n endColumn: position.column - word.word.length,\n });\n const prefixWord = model.getWordAtPosition({\n ...position,\n column: position.column - word?.word?.length - 1,\n });\n let matchWord = prefixWord?.word;\n if (tokenConfig?.showDSKey && prefixWord?.word === \"DS\") {\n const prefix = model.getWordAtPosition({\n ...position,\n column: prefixWord.startColumn - 1,\n });\n\n matchWord = `${prefix?.word}.${prefixWord.word}`;\n }\n return {\n word: matchWord,\n token: prefixToken,\n };\n};\n\nconst isInEvaluateBody = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): boolean => {\n const word = model.getWordUntilPosition(position);\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%\",\n position,\n false,\n false,\n null,\n false\n );\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n\n const prefixRange = prefixEvaluateOperator?.range;\n const suffixRange = suffixEvaluateOperator?.range;\n\n const isInEvaluateBody =\n prefixRange?.startLineNumber &&\n suffixRange?.startLineNumber &&\n prefixRange.startLineNumber <= position.lineNumber &&\n suffixRange.endLineNumber >= position.lineNumber &&\n // 正确匹配当前表达式,防止匹配到上一个表达式<%的开始,下一个表达式的结尾%>\n !model.findMatches(\n \"<%|%>\",\n new monaco.Range(\n prefixRange.endLineNumber,\n prefixRange.endColumn,\n suffixRange.startLineNumber,\n suffixRange.startColumn\n ),\n true,\n false,\n null,\n true\n )?.length;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixRange,\n prefixRange.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixRange,\n suffixRange.startLineNumber\n );\n const { keyList } = findKeys(model, word, position.lineNumber);\n if (\n // value is object\n (prefixParentKey === suffixParentKey &&\n keyList.includes(prefixParentKey)) ||\n // value is string\n (prefixParentKey === \"\" && suffixParentKey === \"\")\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const brickNextYAMLProviderCompletionItems = (\n completers: monaco.languages.CompletionItem[] = [],\n advancedCompleters: AdvancedCompleterMap = {},\n id: string,\n tokenConfig: TokenConfig | undefined\n) => {\n return async (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext\n ): Promise<\n monaco.languages.ProviderResult<monaco.languages.CompletionList>\n > => {\n if (id && id !== getEditorId())\n return {\n suggestions: [],\n };\n const DSToken = tokenConfig?.showDSKey ? [\"CTX.DS\", \"DS\"] : [];\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: prefixToken } = getPrefixWord(\n model,\n position,\n tokenConfig\n );\n const curLineWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: 0,\n endColumn: Infinity,\n });\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const isFirstLevelProperty = word.startColumn === 1;\n const { curLevelKeys } = findKeys(model, word, model.getLineCount());\n\n if (context.triggerCharacter === \"<\") {\n const fullWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endColumn: position.column + 2,\n });\n if (!/^(['\"]?)<\\1$/.test(fullWord.trim())) {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Expression body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n {\n label: \"<%= %>\",\n detail: \"Track expression body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"%= ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n ],\n };\n }\n\n if (isFirstLevelProperty) {\n return {\n suggestions: (completers ?? [])\n .filter((item) => !curLevelKeys.includes(item.label as string))\n .map((item) => ({\n ...item,\n label: item.label,\n insertText: item.insertText || (item.label as string),\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (\n context.triggerCharacter === \":\" ||\n (context.triggerCharacter === \".\" &&\n prefixWord &&\n ![\"CTX\", \"STATE\", \"FN\"].concat(DSToken).includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n return {\n suggestions: builtinActions.map((item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })),\n };\n }\n const matchCompletion = advancedCompleters?.[prefixWord as string];\n let matchTriggerCharacter = \"\";\n let list: monaco.languages.CompletionItem[] | undefined;\n if (matchCompletion && !Array.isArray(matchCompletion)) {\n list = matchCompletion.completers;\n matchTriggerCharacter = matchCompletion.triggerCharacter;\n } else {\n list = matchCompletion;\n }\n if (\n matchTriggerCharacter\n ? context.triggerCharacter === matchTriggerCharacter && list\n : list\n ) {\n return {\n suggestions: (list ?? []).map((item) => {\n const label =\n matchTriggerCharacter === \":\"\n ? ` ${item.label}`\n : (item.label as string);\n return {\n ...item,\n label: label,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: item.insertText || label,\n range,\n };\n }),\n };\n }\n }\n\n if (isInEvaluateBody(model, position) && prefixToken !== \":\") {\n const embeddedContext = EmbeddedModelContext.getInstance(id);\n\n const suggestions = await provideJsSuggestItems(\n model,\n position,\n embeddedContext.getState()\n );\n\n return {\n suggestions,\n };\n }\n\n if (/^[\\s|-]*\\w$/.test(curLineWord)) {\n return {\n suggestions: brickNextKeywords\n .map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n }))\n .filter((item) => !curLevelKeys.includes(item.label as string)),\n };\n }\n\n return {\n suggestions: [],\n };\n };\n};\n","export enum K {\n COPY = \"COPY\",\n COPY_SUCCESS = \"COPY_SUCCESS\",\n COPY_FAILED = \"COPY_FAILED\",\n EXPAND = \"EXPAND\",\n COLLAPSE = \"COLLAPSE\",\n}\n\nconst en: Locale = {\n COPY: \"Copy\",\n COPY_SUCCESS: \"Copied!\",\n COPY_FAILED: \"Copy failed!\",\n EXPAND: \"Expand\",\n COLLAPSE: \"Collapse\",\n};\n\nconst zh: Locale = {\n COPY: \"复制\",\n COPY_SUCCESS: \"已复制!\",\n COPY_FAILED: \"复制失败!\",\n EXPAND: \"展开\",\n COLLAPSE: \"收起\",\n};\n\nexport const NS = \"bricks/vs/code-editor\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","self.MonacoEnvironment = {\n getWorker: function (workerId: string, label: string) {\n switch (label) {\n case \"json\":\n return new Worker(\n /* webpackChunkName: \"json.worker\" */\n new URL(\n \"monaco-editor/esm/vs/language/json/json.worker.js\",\n import.meta.url\n )\n );\n case \"css\":\n case \"scss\":\n case \"less\":\n /* webpackChunkName: \"css.worker\" */\n return new Worker(\n new URL(\n \"monaco-editor/esm/vs/language/css/css.worker.js\",\n import.meta.url\n )\n );\n case \"html\":\n case \"handlebars\":\n case \"razor\":\n return new Worker(\n /* webpackChunkName: \"html.worker\" */\n new URL(\n \"monaco-editor/esm/vs/language/html/html.worker.js\",\n import.meta.url\n )\n );\n case \"typescript\":\n case \"javascript\":\n return new Worker(\n /* webpackChunkName: \"ts.worker\" */\n new URL(\n \"monaco-editor/esm/vs/language/typescript/ts.worker.js\",\n import.meta.url\n )\n );\n default:\n return new Worker(\n /* webpackChunkName: \"editor.worker\" */\n new URL(\n \"monaco-editor/esm/vs/editor/editor.worker.js\",\n import.meta.url\n )\n );\n }\n },\n};\n","// https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax\nimport * as monaco from \"monaco-editor\";\n\nexport const conf: monaco.languages.LanguageConfiguration = {\n comments: {\n lineComment: \"//\",\n blockComment: null,\n },\n\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"],\n ],\n\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"', notIn: [\"string\"] },\n { open: \"'\", close: \"'\", notIn: [\"string\", \"comment\"] },\n ],\n\n onEnterRules: [\n {\n // e.g. <% | %>\n beforeText: /^ $/,\n afterText: /^ $/,\n action: {\n indentAction: monaco.languages.IndentAction.IndentOutdent,\n appendText: \" \",\n },\n },\n ],\n};\n\nexport const constants = [\n // Built-in functions\n \"bytes\",\n \"double\",\n \"duration\",\n \"dyn\",\n \"int\",\n \"bool\",\n \"matches\",\n \"size\",\n \"string\",\n \"timestamp\",\n \"type\",\n \"uint\",\n \"round\",\n // Built-in extensions\n \"base64\",\n // Built-in macros\n \"has\",\n // EasyOps primitive_type_ext\n \"printf\",\n \"isEmpty\",\n \"repeatArray\",\n // EasyOps dyn_type_ext\n \"mergeList\",\n \"fieldNotEmpty\",\n \"hasOrDefault\",\n \"trinocular\",\n \"traceId\",\n \"SHA1\",\n \"random\",\n \"random_string\",\n \"now\",\n // Flow builder variables\n \"request\",\n \"step\",\n \"variable\",\n \"config\",\n \"$\",\n] as readonly string[];\n\nexport const instanceMembers = [\n // Built-in methods\n \"contains\",\n \"endsWith\",\n \"matches\",\n \"startsWith\",\n // Built-in datetime methods\n \"getDate\",\n \"getDayOfMonth\",\n \"getDayOfWeek\",\n \"getDayOfYear\",\n \"getFullYear\",\n \"getHours\",\n \"getMilliseconds\",\n \"getMinutes\",\n \"getMonth\",\n \"getSeconds\",\n // Built-in extensions\n \"charAt\",\n \"indexOf\",\n \"lastIndexOf\",\n \"lowerAscii\",\n \"replace\",\n \"split\",\n \"join\",\n \"substring\",\n \"trim\",\n \"upperAscii\",\n // Built-in macros\n \"all\",\n \"exists\",\n \"exists_one\",\n \"map\",\n \"filter\",\n // EasyOps primitive_type_ext\n \"decodeb64\",\n \"truncate\",\n \"parseJSON\",\n \"parseYAML\",\n \"parseURL\",\n \"isBlank\",\n // EasyOps dyn_type_ext\n \"marshalJSON\",\n \"marshalYAML\",\n \"merge\",\n \"repeat\",\n \"match\",\n \"canonical\",\n \"convertMap\",\n \"fuse\",\n \"remove\",\n \"setAttr\",\n \"parseDate\",\n \"format\",\n // Flow builder step variables,\n \"input\",\n \"output\",\n] as readonly string[];\n\nexport const language: monaco.languages.IMonarchLanguage = {\n // Set defaultToken to invalid to see what you do not tokenize yet\n defaultToken: \"invalid\",\n\n tokenPostfix: \".cel\",\n\n keywords: [\n // Reserved keywords are not used in CEL actually.\n \"in\",\n \"as\",\n \"break\",\n \"const\",\n \"continue\",\n \"else\",\n \"for\",\n \"function\",\n \"if\",\n \"import\",\n \"let\",\n \"loop\",\n \"package\",\n \"namespace\",\n \"return\",\n \"var\",\n \"void\",\n \"while\",\n // constants\n \"null\",\n // boolean\n \"true\",\n \"false\",\n ],\n\n constants,\n\n instanceMethods: instanceMembers,\n\n operators: [\n // Logical operators\n \"&&\",\n \"||\",\n // Comparison operators\n \"<=\",\n \"<\",\n \">=\",\n \">\",\n \"==\",\n \"!=\",\n // \"in\",\n // Arithmetic operators\n \"+\",\n \"-\",\n \"*\",\n \"/\",\n \"%\",\n \"!\",\n ],\n\n // we include these common regular expressions\n symbols: /[=><!~?:&|+\\-*/^%]+/,\n\n escapes:\n /\\\\(?:[bfnrt\\\\\"']|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|[0-3][0-7]{2})/,\n\n // The main tokenizer for our languages\n tokenizer: {\n root: [\n // identifiers and keywords\n [\n /[a-zA-Z_$][\\w$]*/,\n {\n cases: {\n \"@keywords\": \"keyword\",\n \"@constants\": \"keyword\",\n \"@default\": \"identifier\",\n },\n },\n ],\n\n // Method calling\n [\n /(\\.)([a-zA-Z_$][\\w$]*)/,\n [\n \"operator\",\n {\n cases: {\n \"@instanceMethods\": \"keyword\",\n \"@default\": \"identifier\",\n },\n },\n ],\n ],\n\n // whitespace\n { include: \"@whitespace\" },\n\n // delimiters and operators\n [/[{}()[\\]]/, \"@brackets\"],\n // [/[<>](?!@symbols)/, \"@brackets\"],\n [/@symbols/, { cases: { \"@operators\": \"operator\", \"@default\": \"\" } }],\n\n // numbers\n [/\\d*\\.\\d+([eE][-+]?\\d+)?/, \"number.float\"],\n [/0x[0-9a-fA-F]+[uU]?/, \"number.hex\"],\n [/\\d+[uU]?/, \"number\"],\n\n // delimiter: after number because of .\\d floats\n [/[;,.]/, \"delimiter\"],\n\n // strings\n [/\"([^\"\\\\]|\\\\.)*$/, \"string.invalid\"], // non-terminated string\n [/\"/, { token: \"string.quote\", bracket: \"@open\", next: \"@string\" }],\n\n // characters\n [/'[^\\\\']'/, \"string\"],\n [/(')(@escapes)(')/, [\"string\", \"string.escape\", \"string\"]],\n [/'/, \"string.invalid\"],\n ],\n\n string: [\n [/[^\\\\\"]+/, \"string\"],\n [/@escapes/, \"string.escape\"],\n [/\\\\./, \"string.escape.invalid\"],\n [/\"/, { token: \"string.quote\", bracket: \"@close\", next: \"@pop\" }],\n ],\n\n whitespace: [\n [/[ \\t\\r\\n]+/, \"white\"],\n [/\\/\\/.*$/, \"comment\"],\n ],\n },\n};\n\n/**\n * Register the CEL language.\n *\n * See https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax\n */\nexport function register(Monaco: typeof monaco, languageId = \"cel\") {\n Monaco.languages.register({\n id: languageId,\n extensions: [\".cel\"],\n mimetypes: [\"text/cel\"],\n });\n Monaco.languages.setLanguageConfiguration(languageId, conf);\n Monaco.languages.setMonarchTokensProvider(languageId, language);\n}\n","// istanbul ignore file\nexport const DEFAULT_SYSTEM_PROMPT: Record<string, string> = {\n brick_next_yaml: `你是一个编程助手,主要用于 Visual Builder 中的 YAML 配置的代码补全。\n\nYAML 中可以使用 \\`<% %>\\` 嵌入 JS 表达式,例如:\n\n${\"```yaml\"}yaml\ngroups: <% _.groupBy(CTX.hosts, \"idc\") %>\n${\"```\"}\n\nJS 表达式中可以使用 lodash (\\`_\\`) 和 moment。\n\n提供简洁易读的代码补全,语法和逻辑准确,与现有上下文无缝集成,格式优雅。如果要添加注释,不要放在行尾部,应该单独成行。`,\n javascript: getDefaultSystemPrompt(\"JavaScript\"),\n typescript: getDefaultSystemPrompt(\"TypeScript\"),\n};\n\nfunction getDefaultSystemPrompt(language: \"JavaScript\" | \"TypeScript\"): string {\n return `你是一个编程助手,主要用于 Visual Builder 中的 ${language} 函数的代码补全。\n\n提供简洁易读的代码补全,语法和逻辑准确,与现有上下文无缝集成,格式优雅。如果要添加注释,不要放在行尾部,应该单独成行。`;\n}\n","import { diffLines, type Change } from \"diff\";\n\ntype ChangeAction = \"added\" | \"removed\" | \"unchanged\";\n\n/**\n * Post process the response from AI to get the insertion text around the cursor.\n *\n * The AI response may:\n * 1) contains full original source code combined with the insertions (as well as insertions outside the cursor).\n * 2) contains the insertions with several lines of source code as context before and after the cursor.\n * 3) contains only the insertions.\n *\n * @param response The AI response text to be post-processed.\n * @param originalPrefix The original source code before the cursor.\n * @param originalSuffix The original source code after the cursor.\n * @returns The processed insertion text or null if no valid insertion is found.\n */\nexport function postProcessByDiff(\n response: string,\n originalPrefix: string,\n originalSuffix: string\n): string | null {\n const trimmedResponse = response.replace(/^\\n+|\\n+$/g, \"\");\n const trimmedOriginalPrefix = originalPrefix.replace(/^\\n+/g, \"\");\n const trimmedOriginalSuffix = originalSuffix.replace(/\\n+$/g, \"\");\n const responseLines = trimmedResponse.split(\"\\n\");\n const trimmedPrefixLines = trimmedOriginalPrefix.split(\"\\n\");\n const trimmedSuffixLines = trimmedOriginalSuffix.split(\"\\n\");\n const cursorLineNumber = trimmedPrefixLines.length;\n\n const diffLinesOffset = Math.max(\n 0,\n trimmedPrefixLines.length - responseLines.length\n );\n const truncatedPrefix =\n diffLinesOffset > 0\n ? trimmedPrefixLines.slice(diffLinesOffset).join(\"\\n\")\n : trimmedOriginalPrefix;\n const truncatedSuffix =\n trimmedSuffixLines.length > responseLines.length\n ? trimmedSuffixLines.slice(0, responseLines.length).join(\"\\n\")\n : trimmedOriginalSuffix;\n const truncatedSource = `${truncatedPrefix}${truncatedSuffix}`;\n\n // First, find out the insertion by comparing the diff, this resolves situation 1) and 2).\n const changes = diffLines(truncatedSource, trimmedResponse, {\n ignoreWhitespace: true,\n }) as Required<Change>[];\n\n let oldLineIndex = diffLinesOffset;\n let afterCursor = false;\n let lastAction: ChangeAction = \"unchanged\";\n for (let i = 0; i < changes.length; i++) {\n const change = changes[i];\n lastAction = change.removed\n ? \"removed\"\n : change.added\n ? \"added\"\n : \"unchanged\";\n const nextChange = changes[i + 1];\n const nextAction = nextChange?.removed\n ? \"removed\"\n : nextChange?.added\n ? \"added\"\n : \"unchanged\";\n if (lastAction !== \"added\") {\n oldLineIndex += change.count;\n } else if (i === 0 && changes.length === 1) {\n oldLineIndex++;\n }\n if (!afterCursor) {\n afterCursor = oldLineIndex >= cursorLineNumber;\n if (afterCursor) {\n const offset = oldLineIndex - cursorLineNumber;\n if (\n (lastAction === \"unchanged\" &&\n offset === 0 &&\n nextAction === \"added\") ||\n (lastAction === \"added\" && offset === 0) ||\n (lastAction === \"removed\" && nextAction === \"added\")\n ) {\n const update = lastAction === \"added\" ? change : nextChange;\n const fullFixedUpdateValue = `${\n lastAction === \"unchanged\"\n ? `${change.value.replace(/\\n$/, \"\").split(\"\\n\").pop()!}\\n`\n : \"\"\n }${update.value.replace(/\\n$/, \"\")}`;\n const updatedLines = fullFixedUpdateValue.split(\"\\n\");\n const lastUpdatedLine = updatedLines[updatedLines.length - 1];\n // Original\n const originalLinePrefix = trimmedPrefixLines[cursorLineNumber - 1];\n const originalLineSuffix = trimmedSuffixLines[0];\n\n const {\n trimmed: lastUpdatedLineTrimmed,\n trailing: lastUpdatedLineTrailing,\n } = trimWithInfo(lastUpdatedLine);\n const {\n trimmed: originalLinePrefixTrimmed,\n leading: originalLinePrefixLeading,\n trailing: originalLinePrefixTrailing,\n } = trimWithInfo(originalLinePrefix);\n const {\n trimmed: originalLineSuffixTrimmed,\n leading: originalLineSuffixLeading,\n } = trimWithInfo(originalLineSuffix);\n\n for (let j = 0; j < updatedLines.length; j++) {\n const firstUpdatedLine = updatedLines[j];\n const {\n trimmed: firstUpdatedLineTrimmed,\n leading: firstUpdatedLineLeading,\n } = trimWithInfo(firstUpdatedLine);\n if (\n firstUpdatedLineTrimmed.startsWith(originalLinePrefixTrimmed) &&\n lastUpdatedLineTrimmed.endsWith(originalLineSuffixTrimmed)\n ) {\n const fixedUpdateValue = updatedLines.slice(j).join(\"\\n\");\n const start =\n firstUpdatedLineLeading.length +\n originalLinePrefixTrimmed.length;\n const end =\n fixedUpdateValue.length -\n (lastUpdatedLineTrailing.length +\n originalLineSuffixTrimmed.length);\n const restUpdate = fixedUpdateValue.slice(start, end);\n const {\n leading: restUpdateLeading,\n trailing: restUpdateTrailing,\n } = trimWithInfo(restUpdate);\n\n const insertText = restUpdate.slice(\n Math.min(\n restUpdateLeading.length,\n originalLinePrefixTrailing.length\n ),\n restUpdate.length -\n Math.min(\n restUpdateTrailing.length,\n originalLineSuffixLeading.length\n )\n );\n\n if (\n originalLinePrefixLeading.length >\n firstUpdatedLineLeading.length &&\n firstUpdatedLineTrimmed.length > 0 &&\n originalLinePrefixTrimmed.length > 0 &&\n originalLinePrefixLeading.startsWith(firstUpdatedLineLeading)\n ) {\n const leadingSpaces = originalLinePrefixLeading.slice(\n firstUpdatedLineLeading.length\n );\n return insertText\n .split(\"\\n\")\n .map((line, index) =>\n index === 0 ? line : `${leadingSpaces}${line}`\n )\n .join(\"\\n\");\n }\n\n return insertText;\n }\n }\n }\n break;\n }\n }\n }\n\n // Maybe the response is insertion only, that's the situation 3).\n // TODO: check whether it's syntax correct after the insertion?\n const unchangedCount = changes\n .filter((change) => !(change.added || change.removed))\n .reduce((acc, change) => acc + change.count, 0);\n const truncatedLines = truncatedSource.split(\"\\n\");\n if (unchangedCount / truncatedLines.length < 0.2) {\n const insertText = trimmedResponse.trimStart();\n // Keep the original indentation.\n const leadingSpaces =\n trimmedPrefixLines[trimmedPrefixLines.length - 1].match(/^\\s+/)?.[0] ??\n \"\";\n return leadingSpaces\n ? insertText\n .split(\"\\n\")\n .map((line, index) =>\n index === 0 ? line : `${leadingSpaces}${line}`\n )\n .join(\"\\n\")\n : insertText;\n }\n\n return null;\n}\n\nfunction trimWithInfo(content: string): {\n trimmed: string;\n leading: string;\n trailing: string;\n} {\n let leading = \"\";\n let trailing = \"\";\n const trimmed = content\n .replace(/^\\s+/, (match) => {\n leading = match;\n return \"\";\n })\n .replace(/\\s+$/, (match) => {\n trailing = match;\n return \"\";\n });\n\n return { trimmed, leading, trailing };\n}\n","// istanbul ignore file: experimental\nimport * as monaco from \"monaco-editor\";\nimport { DEFAULT_SYSTEM_PROMPT } from \"./prompt.js\";\nimport { postProcessByDiff } from \"./postProcessByDiff.js\";\n\nexport const SUPPORTED_LANGUAGES = Object.freeze([\n \"typescript\",\n \"javascript\",\n \"brick_next_yaml\",\n]);\n\nexport type IHttpAbortError = {\n new (message: string): Error;\n};\n\nexport type ChatRequest = (\n options: ChatRequestOptions\n) => Promise<string | null | undefined>;\n\nexport interface ChatRequestOptions {\n model?: string;\n temperature?: number;\n system?: string;\n prompt?: string;\n signal?: AbortSignal;\n}\n\nexport interface MonacoCopilotProviderOptions {\n HttpAbortError: IHttpAbortError;\n request: ChatRequest;\n model?: string;\n debounce?: number;\n timeout?: number;\n}\n\nexport class MonacoCopilotProvider\n implements monaco.languages.InlineCompletionsProvider\n{\n #timer: null | ReturnType<typeof setTimeout> = null;\n #previousResolve:\n | null\n | ((value: monaco.languages.InlineCompletions | null) => void) = null;\n #debounce: number;\n #timeout: number;\n #HttpAbortError: IHttpAbortError;\n #request: ChatRequest;\n #model: string;\n\n constructor(options: MonacoCopilotProviderOptions) {\n this.#debounce = options.debounce ?? 750;\n this.#HttpAbortError = options.HttpAbortError;\n this.#request = options.request;\n this.#model = options.model ?? \"qwen-coder-turbo\";\n this.#timeout = options.timeout ?? 1.2e4;\n }\n\n async provideInlineCompletions(\n model: monaco.editor.IModel,\n position: monaco.Position,\n ctx: monaco.languages.InlineCompletionContext,\n token: monaco.CancellationToken\n ) {\n const abortCtrl = new AbortController();\n\n token.onCancellationRequested(() => {\n abortCtrl.abort();\n });\n\n if (this.#timer) {\n clearTimeout(this.#timer);\n this.#previousResolve?.(null);\n this.#timer = null;\n this.#previousResolve = null;\n }\n\n const promise = new Promise<monaco.languages.InlineCompletions | null>(\n (resolve) => {\n this.#previousResolve = resolve;\n\n this.#timer = setTimeout(async () => {\n this.#timer = null;\n this.#previousResolve = null;\n\n if (token.isCancellationRequested) {\n resolve(null);\n }\n\n const language = model.getLanguageId();\n const source = model.getValue();\n const lineContent = model.getLineContent(position.lineNumber);\n if (\n // Ignore empty source code.\n source.trim().length === 0 ||\n // For these use cases (generally end of a statement/declaration line),\n // the AI model would not respond in time currently.\n (position.column === model.getLineLength(position.lineNumber) + 1 &&\n (language === \"brick_next_yaml\"\n ? /\\s+%>\\s*$/.test(lineContent)\n : /[;,}\\]]\\s*$/.test(lineContent)))\n ) {\n resolve(null);\n return;\n }\n\n const requestTimeout = setTimeout(() => {\n abortCtrl.abort();\n }, this.#timeout);\n\n try {\n const edit = await getInlineEdit({\n request: this.#request,\n model: this.#model,\n source,\n offset: model.getOffsetAt(position),\n language,\n signal: abortCtrl.signal,\n });\n\n if (!edit) {\n return null;\n }\n\n resolve({\n enableForwardStability: true,\n items: [\n {\n insertText: edit,\n range: new monaco.Range(\n position.lineNumber,\n position.column,\n position.lineNumber,\n position.column\n ),\n },\n ],\n });\n } catch (error) {\n if (!(error instanceof this.#HttpAbortError)) {\n // eslint-disable-next-line no-console\n console.error(\"Error fetching inline completion:\", error);\n }\n resolve(null);\n } finally {\n clearTimeout(requestTimeout);\n }\n }, this.#debounce);\n }\n );\n\n return promise;\n }\n\n freeInlineCompletions() {\n // Do nothing\n }\n}\n\nasync function getInlineEdit({\n request,\n model,\n source,\n language,\n offset,\n signal,\n}: {\n request: ChatRequest;\n model: string;\n source: string;\n language: string;\n offset: number;\n signal: AbortSignal;\n}): Promise<string | null> {\n const prefix = source.slice(0, offset);\n const suffix = source.slice(offset);\n const context =\n language === \"brick_next_yaml\"\n ? \"# File: config.yaml\\n\"\n : `// File utils.${language === \"javascript\" ? \"js\" : \"ts\"}\\n`;\n const content = await request({\n model,\n system: DEFAULT_SYSTEM_PROMPT[language],\n prompt: `<|fim_prefix|>${context}${prefix}<|fim_suffix|>${suffix}<|fim_middle|>`,\n temperature: 0.2,\n signal,\n });\n\n const matches = content?.match(\n /(?:^|\\n)```(?:\\w*)\\n([\\s\\S]*?)(?:\\n```(?:\\n|$)|$)/\n );\n if (!matches) {\n // eslint-disable-next-line no-console\n console.error(\"No code block found in response.\", content);\n return null;\n }\n\n const response = matches[1].startsWith(context)\n ? matches[1].slice(context.length)\n : matches[1];\n\n const insertText = postProcessByDiff(response, prefix, suffix);\n\n if (insertText && /\\S/.test(insertText)) {\n return insertText;\n }\n\n // eslint-disable-next-line no-console\n console.warn(\"Response is invalid:\", content);\n return null;\n}\n","// istanbul ignore file\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst markRegex = new RegExp(\"\\\\b(MARK:\\\\s*)(.*)$\");\nconst trimDashesRegex = /^-+|-+$/g;\n/**\n * Find section headers in the model.\n *\n * @param model the text model to search in\n * @param options options to search with\n * @returns an array of section headers\n */\nexport function findSectionHeaders(model, options) {\n var _a;\n let headers = [];\n if (\n options.findRegionSectionHeaders &&\n ((_a = options.foldingRules) === null || _a === void 0\n ? void 0\n : _a.markers)\n ) {\n const regionHeaders = collectRegionHeaders(model, options);\n headers = headers.concat(regionHeaders);\n }\n if (options.findMarkSectionHeaders) {\n const markHeaders = collectMarkHeaders(model);\n headers = headers.concat(markHeaders);\n }\n return headers;\n}\nfunction collectRegionHeaders(model, options) {\n const regionHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n const match = lineContent.match(options.foldingRules.markers.start);\n if (match) {\n const range = {\n startLineNumber: lineNumber,\n startColumn: match[0].length + 1,\n endLineNumber: lineNumber,\n endColumn: lineContent.length + 1,\n };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(lineContent.substring(match[0].length)),\n shouldBeInComments: false,\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n regionHeaders.push(sectionHeader);\n }\n }\n }\n }\n return regionHeaders;\n}\nfunction collectMarkHeaders(model) {\n const markHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n addMarkHeaderIfFound(lineContent, lineNumber, markHeaders);\n }\n return markHeaders;\n}\nfunction addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) {\n markRegex.lastIndex = 0;\n const match = markRegex.exec(lineContent);\n if (match) {\n const column = match.index + match[1].length + 1;\n const endColumn = column + match[2].length;\n const range = {\n startLineNumber: lineNumber,\n startColumn: column,\n endLineNumber: lineNumber,\n endColumn: endColumn,\n };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(match[1]),\n shouldBeInComments: true,\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n sectionHeaders.push(sectionHeader);\n }\n }\n }\n}\nfunction getHeaderText(text) {\n text = text.trim();\n const hasSeparatorLine = text.startsWith(\"-\");\n text = text.replace(trimDashesRegex, \"\");\n return { text, hasSeparatorLine };\n}\n","export const EDITOR_FONT_SIZE = 12;\nexport const EDITOR_LINE_HEIGHT = 18;\nexport const EDITOR_SCROLLBAR_SIZE = 12;\nexport const EDITOR_PADDING_VERTICAL = 12;\n"],"names":["brickNextKeywords","builtInKeywordDeclare","EmbeddedModelContext","getInstance","id","_assertClassBrand","this","_instance","_","constructor","_classPrivateFieldInitSpec","_id","_state","_classPrivateFieldSet","updateState","state","getState","_classPrivateFieldGet","getEmbeddedJavascriptUri","value","monaco","parse","toString","async","provideJsSuggestItems","model","position","embeddedContext","_embeddedContext$offs","_info$entries","workerGetter","typescript","getJavaScriptWorker","worker","uri","javascriptModel","getModel","offset","getOffsetAt","info","getCompletionsAtPosition","wordInfo","getWordUntilPosition","wordRange","lineNumber","startColumn","endColumn","entries","map","entry","range","replacementSpan","p1","getPositionAt","start","p2","length","column","label","name","insertText","sortText","kind","CompletionItemKind","Property","getBrickYamlBuiltInDeclare","join","method","property","createDecorators","_A","WeakMap","_FormItemElementBase_brand","WeakSet","_B","_C","_D","_E","_F","_G","FormItemElementBase","ReactNextElement","arguments","_classPrivateMethodInitSpec","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_classPrivateSetter","_set_validate","_render","_classPrivateGetter","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","v","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","_applyDecs","attribute","e","___CSS_LOADER_EXPORT___","push","module","conf","comments","lineComment","brackets","autoClosingPairs","open","close","folding","offSide","onEnterRules","beforeText","action","indentAction","IndentAction","Indent","language","tokenPostfix","token","keywords","numberInteger","numberFloat","numberOctal","numberHex","numberInfinity","numberNaN","numberDate","escapes","tokenizer","root","include","cases","object","array","multiString","next","multiStringContinued","whitespace","comment","flowCollections","flowScalars","singleQuotedString","bracket","doubleQuotedString","blockStyle","flowNumber","tagHandle","anchor","flowExpression","expressionStart","nextEmbedded","multiExpression","expressionEmbedded","register","Monaco","languageId","undefined","languages","extensions","mimetypes","setLanguageConfiguration","setMonarchTokensProvider","confOfCel","expression","strings","remoteWorkerPromise","getRemoteSpellCheckWorker","Remote","wrap","Worker","URL","getRemoteYamlLinterWorker","editorId","setEditorId","getEditorId","PlaceholderContentWidget","placeholder","editor","color","_defineProperty","onDidChangeModelContent","_this$editor","_this$editor$getValue","_this$editor2","_this$editor2$removeC","getValue","call","addContentWidget","removeContentWidget","getId","ID","getDomNode","domNode","document","createElement","style","width","pointerEvents","textContent","whiteSpace","fontStyle","applyFontInfo","getPosition","preference","ContentWidgetPositionPreference","EXACT","dispose","_this$editor3","_this$editor3$removeC","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","previousDisposables","setExtraLibs","libs","disposable","lib","uriString","file","filePath","languageDefaults","addExtraLib","content","languageToScope","Map","set","keys","grammars","wasmPromise","fetch","wasm","then","response","arrayBuffer","buffer","loadWASM","data","registry","vsctm","onigLib","createOnigScanner","sources","OnigScanner","createOnigString","str","OnigString","loadGrammar","scopeName","grammarFile","get","grammar","default","getInjections","providers","initializedLanguages","Set","initializeTokensProvider","has","add","setTokensProvider","provider","Error","getInitialState","tokenize","line","lineTokens","tokenizeLine","tokens","startIndex","scopes","endState","ruleStack","doCreateTokensProvider","createTokensProvider","currentEditor","switchEditor","disposeEditor","_editor$getModel","isCurrentEditor","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","code","ids","t","Object","exports","isInEmbedded","previousStart","findPreviousMatch","nextEnd","findNextMatch","previousEnd","getEndPosition","isBefore","getStartPosition","nextStart","word","match","BUILTIN_MEMBERS","request","provideEmbeddedCelCompletionItems","context","triggerCharacter","suggestions","nearby","getValueInRange","startLineNumber","endLineNumber","test","trim","detail","Value","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","celCommonCompletionProviderFactory","lang","triggerCharacters","provideCompletionItems","previousWord","completer","hasOwnProperty","Method","constants","includes","instanceMembers","Keyword","celSpecificCompletionProviderFactory","completers","members","type","findKeys","curLevelKeys","keyList","parentKey","i","matchWord","Infinity","wordSpace","key","unshift","brickNextYAMLProviderCompletionItems","advancedCompleters","tokenConfig","DSToken","showDSKey","prefixWord","prefixToken","getPrefixWord","_word$word","getWordAtPosition","prefix","curLineWord","isFirstLevelProperty","getLineCount","fullWord","filter","item","concat","builtinActions","matchCompletion","list","matchTriggerCharacter","Array","isArray","isInEvaluateBody","_model$findMatches","prefixEvaluateOperator","suffixEvaluateOperator","prefixRange","suffixRange","findMatches","prefixParentKey","suffixParentKey","K","NS","locales","en","COPY","COPY_SUCCESS","COPY_FAILED","EXPAND","COLLAPSE","zh","self","MonacoEnvironment","getWorker","workerId","blockComment","notIn","afterText","IndentOutdent","appendText","defaultToken","instanceMethods","operators","symbols","string","DEFAULT_SYSTEM_PROMPT","brick_next_yaml","javascript","getDefaultSystemPrompt","trimWithInfo","leading","trailing","trimmed","replace","SUPPORTED_LANGUAGES","freeze","_timer","_previousResolve","_debounce","_timeout","_HttpAbortError","_request","_model","MonacoCopilotProvider","_options$debounce","_options$model","_options$timeout","debounce","HttpAbortError","timeout","provideInlineCompletions","ctx","abortCtrl","AbortController","_classPrivateFieldGet2","onCancellationRequested","abort","clearTimeout","setTimeout","isCancellationRequested","getLanguageId","source","lineContent","getLineContent","getLineLength","requestTimeout","edit","_ref","signal","slice","suffix","system","prompt","temperature","matches","console","error","originalPrefix","originalSuffix","trimmedResponse","trimmedOriginalPrefix","trimmedOriginalSuffix","responseLines","split","trimmedPrefixLines","trimmedSuffixLines","cursorLineNumber","diffLinesOffset","Math","max","truncatedSource","changes","diffLines","ignoreWhitespace","oldLineIndex","afterCursor","lastAction","change","removed","added","nextChange","nextAction","count","update","updatedLines","pop","lastUpdatedLine","originalLinePrefix","originalLineSuffix","lastUpdatedLineTrimmed","lastUpdatedLineTrailing","originalLinePrefixTrimmed","originalLinePrefixLeading","originalLinePrefixTrailing","originalLineSuffixTrimmed","originalLineSuffixLeading","j","firstUpdatedLine","firstUpdatedLineTrimmed","firstUpdatedLineLeading","startsWith","endsWith","fixedUpdateValue","end","restUpdate","restUpdateLeading","restUpdateTrailing","min","leadingSpaces","index","reduce","acc","_trimmedPrefixLines$m","_trimmedPrefixLines$m2","trimStart","postProcessByDiff","warn","getInlineEdit","enableForwardStability","items","freeInlineCompletions","markRegex","RegExp","trimDashesRegex","findSectionHeaders","_a","headers","findRegionSectionHeaders","foldingRules","markers","regionHeaders","sectionHeader","getHeaderText","substring","shouldBeInComments","text","hasSeparatorLine","collectRegionHeaders","findMarkSectionHeaders","markHeaders","addMarkHeaderIfFound","collectMarkHeaders","sectionHeaders","lastIndex","exec","EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[4765,7146],{97146:(e,t,r)=>{function o(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(n,s){if("string"==typeof t?n.name===t:t.includes(n.name)){const t=[];for(let i=1;i<=r;i++){const r=s[s.length-i];if("MemberExpression"===(null==r?void 0:r.node.type)&&"object"===r.key){const s=r.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(o?`${n.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(o?`${n.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===r&&e.usedProperties.add(t.join("."))}}}function n(e,t){return function(r,o,n){if(o.name===e){const e=n[n.length-1],o=n[n.length-2];if("CallExpression"===(null==o?void 0:o.node.type)&&"callee"===(null==o?void 0:o.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=o.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?r.usedArgs.add(t.value):r.hasNonStaticUsage=!0}}}}}r.r(t),r.d(t,{beforeVisitGlobalMember:()=>o,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>b,createProviderClass:()=>c.createProviderClass,replaceUseChildren:()=>x,scanPermissionActionsInAny:()=>A,scanPermissionActionsInStoryboard:()=>m,strictCollectMemberUsage:()=>u,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>l,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=n("APP","getMenu"),i=n("INSTALLED_APPS","has");var a=r(84293),c=r(
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[4765,7146],{97146:(e,t,r)=>{function o(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(n,s){if("string"==typeof t?n.name===t:t.includes(n.name)){const t=[];for(let i=1;i<=r;i++){const r=s[s.length-i];if("MemberExpression"===(null==r?void 0:r.node.type)&&"object"===r.key){const s=r.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(o?`${n.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(o?`${n.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===r&&e.usedProperties.add(t.join("."))}}}function n(e,t){return function(r,o,n){if(o.name===e){const e=n[n.length-1],o=n[n.length-2];if("CallExpression"===(null==o?void 0:o.node.type)&&"callee"===(null==o?void 0:o.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=o.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?r.usedArgs.add(t.value):r.hasNonStaticUsage=!0}}}}}r.r(t),r.d(t,{beforeVisitGlobalMember:()=>o,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>b,createProviderClass:()=>c.createProviderClass,replaceUseChildren:()=>x,scanPermissionActionsInAny:()=>A,scanPermissionActionsInStoryboard:()=>m,strictCollectMemberUsage:()=>u,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>l,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=n("APP","getMenu"),i=n("INSTALLED_APPS","has");var a=r(84293),c=r(77019);function l(e,t,r){const o=new WeakSet,{matchExpressionString:n,visitNotMatchedExpressionString:s,visitNonExpressionString:i,visitObject:l}="string"==typeof r?{matchExpressionString:e=>e.includes(r)}:r;!function e(r){if("string"==typeof r)if((0,a.isEvaluable)(r))if(n(r))try{(0,a.preevaluate)(r,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal(e,o){t(e,o,r)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==s||s(r);else null==i||i(r);else if((0,c.isObject)(r)){if(o.has(r))return;o.add(r),null==l||l(r);for(const t of Array.isArray(r)?r:Object.values(r))e(t)}}(e)}function u(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{hasNonStaticUsage:o,nonStaticUsage:n,usedProperties:s}=p(e,t,r);if(o)throw new Error(`Non-static usage of ${t} is prohibited, check your expression: "${n}"`);return s}function p(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const n={usedProperties:new Set,hasNonStaticUsage:!1},s=o(n,t,r);return l(e,((e,t,r)=>{s(e,t),n.hasNonStaticUsage&&(n.nonStaticUsage=r)}),t),n}const d=["CTX","STATE","FORM_STATE"];function f(e,t,r){if(e.includes(t)){const n={usedProperties:new Set,hasNonStaticUsage:!1},{expression:s}=(0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:o(n,r)}});let i;if("SequenceExpression"===s.type&&(i=s.expressions[0])&&"Literal"===i.type&&i.value===t){if(n.usedProperties.size>0)return n.usedProperties;console.warn(`You are using "${t}" but no \`${r}\` usage found in your expression: ${JSON.stringify(e)}`)}}return!1}function y(e){if(d.some((t=>e.includes(t)))){const t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:o(t,d,1,!0)}}),t.usedProperties.size>0){const e=[...t.usedProperties],r={context:!1,state:!1,formState:!1},o={CTX:"context",STATE:"state",FORM_STATE:"formState"};return e.forEach((e=>{const[t,n]=e.split(".");r[o[t]]||(r[o[t]]=[]),r[o[t]].push(n)})),r}console.warn(`You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: ${JSON.stringify(e)}`)}return!1}function h(e,t,r){if(Array.isArray(e))for(const o of e)null!=r&&r.matchSource&&!r.matchSource(o.source)||g(o,t)}function g(e,t,r){try{(0,a.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t},cacheKey:e})}catch(t){r||console.error(`Parse storyboard function "${e.name}" failed:`,t)}}function b(e,t,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const s={usedProperties:new Set,hasNonStaticUsage:!1};if(e.source.includes(t)&&g(e,o(s,t,n),r),s.hasNonStaticUsage&&!r)throw new Error(`Non-static usage of ${t} is prohibited, check your function: "${e.name}"`);return s.usedProperties.delete(e.name),s.usedProperties}const S="PERMISSIONS",v="check";function m(e){var t;const r=new Set,o=P(r),{customTemplates:n,functions:s}=null!==(t=e.meta)&&void 0!==t?t:{};return l([e.routes,n],o,S),h(s,o,{matchSource:e=>e.includes(S)}),Array.from(r)}function A(e){const t=new Set;return l(e,P(t),S),Array.from(t)}function P(e){return function(t,r){if(t.name===S){const t=r[r.length-1],o=r[r.length-2];if("CallExpression"===(null==o?void 0:o.node.type)&&"callee"===(null==o?void 0:o.key)&&"MemberExpression"===(null==t?void 0:t.node.type)&&"object"===t.key&&(t.node.computed?"Literal"===t.node.property.type&&t.node.property.value===v:"Identifier"===t.node.property.type&&t.node.property.name===v))for(const t of o.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}var k=r(20563);const{pull:w}=k,E=/^\[\w+\]$/;function x(e){if(Array.isArray(e))for(const t of e)T(t);else T(e)}function T(e){let t=e.slots;const r=new Map;if(Array.isArray(e.children)&&!t){const t=[];for(const n of e.children){var o;const e=null!==(o=n.slot)&&void 0!==o?o:"";if(E.test(e)){delete n.slot;const o=r.get(e);o?o.push(n):r.set(e,[n]),t.push(n)}T(n)}w(e.children,...t)}else{null!=t||(t={});for(const[e,o]of Object.entries(t)){if(E.test(e)){const{bricks:n}=o;Array.isArray(n)&&n.length>0&&(r.set(e,n),x(n)),delete t[e]}Array.isArray(o.bricks)&&x(o.bricks)}}r.size>0&&N(e.properties,r)}function N(e,t){if(Array.isArray(e))for(const r of e)N(r,t);else if((0,c.isObject)(e))for(const[r,o]of Object.entries(e))if("useChildren"===r){const n=t.get(o);n&&(delete e[r],e.useBrick=1===n.length?n[0]:n)}else N(o,t)}}}]);
|
|
2
|
+
//# sourceMappingURL=7146.d0cc1ce9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/4765.cc7388fe.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/replaceUseChildren.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n const segments = [];\n for (let i = 1; i <= level; i++) {\n const memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n const memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.name}` : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.value}` : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n const args = callParent.node.arguments;\n if (args.length > 0) {\n const firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n const memo = new WeakSet();\n const {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (const item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your expression: \"${nonStaticUsage}\"`);\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nconst TRACK_NAMES = [\"CTX\", \"STATE\", \"FORM_STATE\"];\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const {\n expression\n } = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n let trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using \"${trackText}\" but no \\`${variableName}\\` usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n // Do not pre-evaluate a string if it doesn't include track names.\n if (TRACK_NAMES.some(name => raw.includes(name))) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, TRACK_NAMES, 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n const usedProperties = [...usage.usedProperties];\n const result = {\n context: false,\n state: false,\n formState: false\n };\n const keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperties.forEach(item => {\n const [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using track all but no \"CTX\" or \"STATE\" or \"FORM_STATE\" usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal, options) {\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n if (!(options !== null && options !== void 0 && options.matchSource) || options.matchSource(fn.source)) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n },\n cacheKey: fn\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(`Parse storyboard function \"${fn.name}\" failed:`, error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n if (fn.source.includes(objectName)) {\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n }\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your function: \"${fn.name}\"`);\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nconst PERMISSIONS = \"PERMISSIONS\";\nconst check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions, {\n matchSource(source) {\n return source.includes(PERMISSIONS);\n }\n });\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n const collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (const arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map","import { isObject } from \"@next-core/utils/general\";\nimport lodash from \"lodash\";\nconst {\n pull\n} = lodash;\nconst USE_CHILDREN_SLOT_REGEXP = /^\\[\\w+\\]$/;\n\n/**\n * Replace `useChildren: \"[xxx]\"` with `useBrick`.\n *\n * This will mutate the input.\n */\nexport function replaceUseChildren(input) {\n if (Array.isArray(input)) {\n for (const brick of input) {\n replaceInBrick(brick);\n }\n } else {\n replaceInBrick(input);\n }\n}\nfunction replaceInBrick(brick) {\n let slots = brick.slots;\n const useChildrenMap = new Map();\n if (Array.isArray(brick.children) && !slots) {\n const removeBricks = [];\n for (const child of brick.children) {\n var _child$slot;\n const slot = (_child$slot = child.slot) !== null && _child$slot !== void 0 ? _child$slot : \"\";\n if (USE_CHILDREN_SLOT_REGEXP.test(slot)) {\n delete child.slot;\n const children = useChildrenMap.get(slot);\n if (children) {\n children.push(child);\n } else {\n useChildrenMap.set(slot, [child]);\n }\n removeBricks.push(child);\n }\n replaceInBrick(child);\n }\n pull(brick.children, ...removeBricks);\n } else {\n slots !== null && slots !== void 0 ? slots : slots = {};\n for (const [slot, slotConf] of Object.entries(slots)) {\n if (USE_CHILDREN_SLOT_REGEXP.test(slot)) {\n const {\n bricks: children\n } = slotConf;\n if (Array.isArray(children) && children.length > 0) {\n useChildrenMap.set(slot, children);\n replaceUseChildren(children);\n }\n delete slots[slot];\n }\n if (Array.isArray(slotConf.bricks)) {\n replaceUseChildren(slotConf.bricks);\n }\n }\n }\n if (useChildrenMap.size > 0) {\n replaceInProperties(brick.properties, useChildrenMap);\n }\n}\nfunction replaceInProperties(value, useChildrenMap) {\n if (Array.isArray(value)) {\n for (const item of value) {\n replaceInProperties(item, useChildrenMap);\n }\n } else if (isObject(value)) {\n for (const [k, v] of Object.entries(value)) {\n if (k === \"useChildren\") {\n const children = useChildrenMap.get(v);\n if (children) {\n delete value[k];\n value.useBrick = children.length === 1 ? children[0] : children;\n }\n } else {\n replaceInProperties(v, useChildrenMap);\n }\n }\n }\n}\n//# sourceMappingURL=replaceUseChildren.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","cache","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","TRACK_NAMES","track","raw","trackText","variableName","expression","trackCtxExp","expressions","size","warn","JSON","stringify","trackAll","some","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","matchSource","source","traverseStoryboardFunction","silentErrors","precookFunction","typescript","cacheKey","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg","pull","USE_CHILDREN_SLOT_REGEXP","replaceUseChildren","input","brick","replaceInBrick","slots","useChildrenMap","Map","children","removeBricks","child","_child$slot","slot","test","get","set","slotConf","entries","bricks","replaceInProperties","properties","k","useBrick"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/7146.d0cc1ce9.js","mappings":"oIAAO,SAASA,EAAwBC,EAAOC,GAC7C,IAAIC,EAAQC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,EAC5EG,EAAqBH,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,IAAmBA,UAAU,GACxF,OAAO,SAA2BI,EAAMC,GACtC,GAA0B,iBAAfP,EAA0BM,EAAKE,OAASR,EAAaA,EAAWS,SAASH,EAAKE,MAAO,CAC9F,MAAME,EAAW,GACjB,IAAK,IAAIC,EAAI,EAAGA,GAAKV,EAAOU,IAAK,CAC/B,MAAMC,EAAeL,EAAOA,EAAOJ,OAASQ,GAC5C,GAA6F,sBAAxFC,aAAmD,EAASA,EAAaN,KAAKO,OAAqD,WAArBD,EAAaE,IAAkB,CAChJ,MAAMC,EAAaH,EAAaN,KAC3BS,EAAWC,UAAyC,eAA7BD,EAAWE,SAASJ,KAErCE,EAAWC,UAAyC,YAA7BD,EAAWE,SAASJ,MAA2D,iBAA9BE,EAAWE,SAASC,MACrGR,EAASS,KAAKd,EAAqB,GAAGC,EAAKE,QAAQO,EAAWE,SAASC,QAAUH,EAAWE,SAASC,OAErGnB,EAAMqB,mBAAoB,EAJ1BV,EAASS,KAAKd,EAAqB,GAAGC,EAAKE,QAAQO,EAAWE,SAAST,OAASO,EAAWE,SAAST,KAMxG,MACET,EAAMqB,mBAAoB,CAE9B,CACIV,EAASP,SAAWF,GACtBF,EAAMsB,eAAeC,IAAIZ,EAASa,KAAK,KAE3C,CACF,CACF,CC1BA,SAASC,EAA8BC,EAAQR,GAC7C,OAAO,SAAgClB,EAAOO,EAAMC,GAClD,GAAID,EAAKE,OAASiB,EAAQ,CACxB,MAAMb,EAAeL,EAAOA,EAAOJ,OAAS,GACtCuB,EAAanB,EAAOA,EAAOJ,OAAS,GAC1C,GAAuF,oBAAlFuB,aAA+C,EAASA,EAAWpB,KAAKO,OAA2G,YAA5Ea,aAA+C,EAASA,EAAWZ,MAA8G,sBAAxFF,aAAmD,EAASA,EAAaN,KAAKO,OAAqD,WAArBD,EAAaE,MAAqBF,EAAaN,KAAKU,SAA+C,YAApCJ,EAAaN,KAAKW,SAASJ,MAAsBD,EAAaN,KAAKW,SAASC,QAAUD,EAA+C,eAApCL,EAAaN,KAAKW,SAASJ,MAAyBD,EAAaN,KAAKW,SAAST,OAASS,GAAW,CACpjB,MAAMU,EAAOD,EAAWpB,KAAKJ,UAC7B,GAAIyB,EAAKxB,OAAS,EAAG,CACnB,MAAMyB,EAAWD,EAAK,GACA,YAAlBC,EAASf,MAAgD,iBAAnBe,EAASV,MACjDnB,EAAM8B,SAASP,IAAIM,EAASV,OAE5BnB,EAAMqB,mBAAoB,CAE9B,CACF,CACF,CACF,CACF,C,+fACO,MAAMU,EAAyBN,EAA8B,MAAO,WAC9DO,EAA+BP,EAA8B,iBAAkB,O,0BClBrF,SAASQ,EAA8BC,EAAMC,EAEpDC,GACE,MAAMC,EAAO,IAAIC,SACX,sBACJC,EAAqB,gCACrBC,EAA+B,yBAC/BC,EAAwB,YACxBC,GACqB,iBAAZN,EAAuB,CAChCG,sBAAuBI,GAAKA,EAAEjC,SAAS0B,IACrCA,GACJ,SAASQ,EAASzB,GAChB,GAAqB,iBAAVA,EACT,IAAI,IAAA0B,aAAY1B,GACd,GAAIoB,EAAsBpB,GACxB,KACE,IAAA2B,aAAY3B,EAAO,CACjB4B,OAAO,EACPC,YAAY,EACZC,MAAO,CACL,iBAAAd,CAAkB5B,EAAMC,GAEtB2B,EAAkB5B,EAAMC,EAAQW,EAClC,IAGN,CAAE,MAAO+B,GAEPC,QAAQD,MAAM,sCAAuCA,EACvD,MAEAV,SAA0FA,EAAgCrB,QAG5HsB,SAA4EA,EAAyBtB,QAElG,IAAI,IAAAiC,UAASjC,GAAQ,CAE1B,GAAIkB,EAAKgB,IAAIlC,GACX,OAEFkB,EAAKd,IAAIJ,GACTuB,SAAkDA,EAAYvB,GAC9D,IAAK,MAAMmC,KAAQC,MAAMC,QAAQrC,GAASA,EAAQsC,OAAOC,OAAOvC,GAC9DyB,EAASU,EAEb,CACF,CACAV,CAASV,EACX,CClDO,SAASyB,EAAyBzB,EAAMjC,GAC7C,IAAIC,EAAQC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,EAChF,MAAM,kBACJkB,EAAiB,eACjBuC,EAAc,eACdtC,GACEuC,EAAmB3B,EAAMjC,EAAYC,GACzC,GAAImB,EACF,MAAM,IAAIyC,MAAM,uBAAuB7D,4CAAqD2D,MAE9F,OAAOtC,CACT,CACO,SAASuC,EAAmB3B,EAAMjC,GACvC,IAAIC,EAAQC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,EAChF,MAAMH,EAAQ,CACZsB,eAAgB,IAAIyC,IACpB1C,mBAAmB,GAEfc,EAAoBpC,EAAwBC,EAAOC,EAAYC,GAOrE,OANA+B,EAA8BC,GAAM,CAAC3B,EAAMC,EAAQwD,KACjD7B,EAAkB5B,EAAMC,GACpBR,EAAMqB,oBACRrB,EAAM4D,eAAiBI,EACzB,GACC/D,GACID,CACT,CC1BA,MAAMiE,EAAc,CAAC,MAAO,QAAS,cAC9B,SAASC,EAAMC,EAAKC,EAAWC,GACpC,GAAIF,EAAIzD,SAAS0D,GAAY,CAC3B,MAAMpE,EAAQ,CACZsB,eAAgB,IAAIyC,IACpB1C,mBAAmB,IAEf,WACJiD,IACE,IAAAxB,aAAYqB,EAAK,CACnBpB,OAAO,EACPC,YAAY,EACZC,MAAO,CACLd,kBAAmBpC,EAAwBC,EAAOqE,MAGtD,IAAIE,EACJ,GAAwB,uBAApBD,EAAWxD,OAAkCyD,EAAcD,EAAWE,YAAY,KAA4B,YAArBD,EAAYzD,MAAsByD,EAAYpD,QAAUiD,EAAW,CAC9J,GAAIpE,EAAMsB,eAAemD,KAAO,EAC9B,OAAOzE,EAAMsB,eAGb6B,QAAQuB,KAAK,kBAAkBN,eAAuBC,uCAAkDM,KAAKC,UAAUT,KAE3H,CACF,CACA,OAAO,CACT,CACO,SAASU,EAASV,GAEvB,GAAIF,EAAYa,MAAKrE,GAAQ0D,EAAIzD,SAASD,KAAQ,CAChD,MAAMT,EAAQ,CACZsB,eAAgB,IAAIyC,IACpB1C,mBAAmB,GASrB,IAPA,IAAAyB,aAAYqB,EAAK,CACfpB,OAAO,EACPC,YAAY,EACZC,MAAO,CACLd,kBAAmBpC,EAAwBC,EAAOiE,EAAa,GAAG,MAGlEjE,EAAMsB,eAAemD,KAAO,EAAG,CACjC,MAAMnD,EAAiB,IAAItB,EAAMsB,gBAC3ByD,EAAS,CACbC,SAAS,EACTC,OAAO,EACPC,WAAW,GAEPC,EAAS,CACbC,IAAK,UACLC,MAAO,QACPC,WAAY,aASd,OAPAhE,EAAeiE,SAAQjC,IACrB,MAAOvC,EAAKN,GAAQ6C,EAAKkC,MAAM,KAC1BT,EAAOI,EAAOpE,MACjBgE,EAAOI,EAAOpE,IAAQ,IAExBgE,EAAOI,EAAOpE,IAAMK,KAAKX,EAAK,IAEzBsE,CACT,CAEE5B,QAAQuB,KAAK,mGAAmGC,KAAKC,UAAUT,KAEnI,CACA,OAAO,CACT,CCrEO,SAASsB,EAA4BC,EAAWvD,EAAmBC,GACxE,GAAImB,MAAMC,QAAQkC,GAChB,IAAK,MAAMC,KAAMD,EACTtD,SAA0CA,EAAQwD,cAAgBxD,EAAQwD,YAAYD,EAAGE,SAC7FC,EAA2BH,EAAIxD,EAIvC,CACO,SAAS2D,EAA2BH,EAAIxD,EAAmB4D,GAChE,KACE,IAAAC,iBAAgBL,EAAGE,OAAQ,CACzBI,WAAYN,EAAGM,WACfjD,YAAY,EACZC,MAAO,CACLd,qBAEF+D,SAAUP,GAEd,CAAE,MAAOzC,GACF6C,GAEH5C,QAAQD,MAAM,8BAA8ByC,EAAGlF,gBAAiByC,EAEpE,CACF,CCxBO,SAASiD,EAA6BR,EAAI1F,EAAY8F,GAC3D,IAAI7F,EAAQC,UAAUC,OAAS,QAAsBC,IAAjBF,UAAU,GAAmBA,UAAU,GAAK,EAChF,MAAMH,EAAQ,CACZsB,eAAgB,IAAIyC,IACpB1C,mBAAmB,GAKrB,GAHIsE,EAAGE,OAAOnF,SAAST,IACrB6F,EAA2BH,EAAI5F,EAAwBC,EAAOC,EAAYC,GAAQ6F,GAEhF/F,EAAMqB,oBAAsB0E,EAC9B,MAAM,IAAIjC,MAAM,uBAAuB7D,0CAAmD0F,EAAGlF,SAG/F,OADAT,EAAMsB,eAAe8E,OAAOT,EAAGlF,MACxBT,EAAMsB,cACf,CCdA,MAAM+E,EAAc,cACdC,EAAQ,QACP,SAASC,EAAkCC,GAChD,IAAIC,EACJ,MAAMC,EAAa,IAAI3C,IACjB4C,EAAyBC,EAA8BF,IACvD,gBACJG,EAAe,UACfnB,GAC2C,QAAxCe,EAAmBD,EAAWM,YAAuC,IAArBL,EAA8BA,EAAmB,CAAC,EAOvG,OANAxE,EAA8B,CAACuE,EAAWO,OAAQF,GAAkBF,EAAwBN,GAC5FZ,EAA4BC,EAAWiB,EAAwB,CAC7Df,YAAYC,GACHA,EAAOnF,SAAS2F,KAGpB9C,MAAMyD,KAAKN,EACpB,CACO,SAASO,EAA2B/E,GACzC,MAAMwE,EAAa,IAAI3C,IAEvB,OADA9B,EAA8BC,EAAM0E,EAA8BF,GAAaL,GACxE9C,MAAMyD,KAAKN,EACpB,CACA,SAASE,EAA8BF,GACrC,OAAO,SAAgCnG,EAAMC,GAC3C,GAAID,EAAKE,OAAS4F,EAAa,CAC7B,MAAMxF,EAAeL,EAAOA,EAAOJ,OAAS,GACtCuB,EAAanB,EAAOA,EAAOJ,OAAS,GAC1C,GAAuF,oBAAlFuB,aAA+C,EAASA,EAAWpB,KAAKO,OAA2G,YAA5Ea,aAA+C,EAASA,EAAWZ,MAA8G,sBAAxFF,aAAmD,EAASA,EAAaN,KAAKO,OAAqD,WAArBD,EAAaE,MAAqBF,EAAaN,KAAKU,SAA+C,YAApCJ,EAAaN,KAAKW,SAASJ,MAAsBD,EAAaN,KAAKW,SAASC,QAAUmF,EAA4C,eAApCzF,EAAaN,KAAKW,SAASJ,MAAyBD,EAAaN,KAAKW,SAAST,OAAS6F,GACtiB,IAAK,MAAMY,KAAOvF,EAAWpB,KAAKJ,UACf,YAAb+G,EAAIpG,MAA2C,iBAAdoG,EAAI/F,OACvCuF,EAAWnF,IAAI2F,EAAI/F,MAI3B,CACF,CACF,C,eCrCA,MAAM,KACJgG,GACE,EACEC,EAA2B,YAO1B,SAASC,EAAmBC,GACjC,GAAI/D,MAAMC,QAAQ8D,GAChB,IAAK,MAAMC,KAASD,EAClBE,EAAeD,QAGjBC,EAAeF,EAEnB,CACA,SAASE,EAAeD,GACtB,IAAIE,EAAQF,EAAME,MAClB,MAAMC,EAAiB,IAAIC,IAC3B,GAAIpE,MAAMC,QAAQ+D,EAAMK,YAAcH,EAAO,CAC3C,MAAMI,EAAe,GACrB,IAAK,MAAMC,KAASP,EAAMK,SAAU,CAClC,IAAIG,EACJ,MAAMC,EAAsC,QAA9BD,EAAcD,EAAME,YAAkC,IAAhBD,EAAyBA,EAAc,GAC3F,GAAIX,EAAyBa,KAAKD,GAAO,QAChCF,EAAME,KACb,MAAMJ,EAAWF,EAAeQ,IAAIF,GAChCJ,EACFA,EAASxG,KAAK0G,GAEdJ,EAAeS,IAAIH,EAAM,CAACF,IAE5BD,EAAazG,KAAK0G,EACpB,CACAN,EAAeM,EACjB,CACAX,EAAKI,EAAMK,YAAaC,EAC1B,KAAO,CACLJ,UAA6CA,EAAQ,CAAC,GACtD,IAAK,MAAOO,EAAMI,KAAa3E,OAAO4E,QAAQZ,GAAQ,CACpD,GAAIL,EAAyBa,KAAKD,GAAO,CACvC,MACEM,OAAQV,GACNQ,EACA7E,MAAMC,QAAQoE,IAAaA,EAASxH,OAAS,IAC/CsH,EAAeS,IAAIH,EAAMJ,GACzBP,EAAmBO,WAEdH,EAAMO,EACf,CACIzE,MAAMC,QAAQ4E,EAASE,SACzBjB,EAAmBe,EAASE,OAEhC,CACF,CACIZ,EAAejD,KAAO,GACxB8D,EAAoBhB,EAAMiB,WAAYd,EAE1C,CACA,SAASa,EAAoBpH,EAAOuG,GAClC,GAAInE,MAAMC,QAAQrC,GAChB,IAAK,MAAMmC,KAAQnC,EACjBoH,EAAoBjF,EAAMoE,QAEvB,IAAI,IAAAtE,UAASjC,GAClB,IAAK,MAAOsH,EAAG9F,KAAMc,OAAO4E,QAAQlH,GAClC,GAAU,gBAANsH,EAAqB,CACvB,MAAMb,EAAWF,EAAeQ,IAAIvF,GAChCiF,WACKzG,EAAMsH,GACbtH,EAAMuH,SAA+B,IAApBd,EAASxH,OAAewH,EAAS,GAAKA,EAE3D,MACEW,EAAoB5F,EAAG+E,EAI/B,C","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/replaceUseChildren.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n const segments = [];\n for (let i = 1; i <= level; i++) {\n const memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n const memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.name}` : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.value}` : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n const args = callParent.node.arguments;\n if (args.length > 0) {\n const firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n const memo = new WeakSet();\n const {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (const item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your expression: \"${nonStaticUsage}\"`);\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nconst TRACK_NAMES = [\"CTX\", \"STATE\", \"FORM_STATE\"];\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const {\n expression\n } = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n let trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using \"${trackText}\" but no \\`${variableName}\\` usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n // Do not pre-evaluate a string if it doesn't include track names.\n if (TRACK_NAMES.some(name => raw.includes(name))) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, TRACK_NAMES, 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n const usedProperties = [...usage.usedProperties];\n const result = {\n context: false,\n state: false,\n formState: false\n };\n const keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperties.forEach(item => {\n const [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using track all but no \"CTX\" or \"STATE\" or \"FORM_STATE\" usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal, options) {\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n if (!(options !== null && options !== void 0 && options.matchSource) || options.matchSource(fn.source)) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n },\n cacheKey: fn\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(`Parse storyboard function \"${fn.name}\" failed:`, error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n if (fn.source.includes(objectName)) {\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n }\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your function: \"${fn.name}\"`);\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nconst PERMISSIONS = \"PERMISSIONS\";\nconst check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions, {\n matchSource(source) {\n return source.includes(PERMISSIONS);\n }\n });\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n const collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (const arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map","import { isObject } from \"@next-core/utils/general\";\nimport lodash from \"lodash\";\nconst {\n pull\n} = lodash;\nconst USE_CHILDREN_SLOT_REGEXP = /^\\[\\w+\\]$/;\n\n/**\n * Replace `useChildren: \"[xxx]\"` with `useBrick`.\n *\n * This will mutate the input.\n */\nexport function replaceUseChildren(input) {\n if (Array.isArray(input)) {\n for (const brick of input) {\n replaceInBrick(brick);\n }\n } else {\n replaceInBrick(input);\n }\n}\nfunction replaceInBrick(brick) {\n let slots = brick.slots;\n const useChildrenMap = new Map();\n if (Array.isArray(brick.children) && !slots) {\n const removeBricks = [];\n for (const child of brick.children) {\n var _child$slot;\n const slot = (_child$slot = child.slot) !== null && _child$slot !== void 0 ? _child$slot : \"\";\n if (USE_CHILDREN_SLOT_REGEXP.test(slot)) {\n delete child.slot;\n const children = useChildrenMap.get(slot);\n if (children) {\n children.push(child);\n } else {\n useChildrenMap.set(slot, [child]);\n }\n removeBricks.push(child);\n }\n replaceInBrick(child);\n }\n pull(brick.children, ...removeBricks);\n } else {\n slots !== null && slots !== void 0 ? slots : slots = {};\n for (const [slot, slotConf] of Object.entries(slots)) {\n if (USE_CHILDREN_SLOT_REGEXP.test(slot)) {\n const {\n bricks: children\n } = slotConf;\n if (Array.isArray(children) && children.length > 0) {\n useChildrenMap.set(slot, children);\n replaceUseChildren(children);\n }\n delete slots[slot];\n }\n if (Array.isArray(slotConf.bricks)) {\n replaceUseChildren(slotConf.bricks);\n }\n }\n }\n if (useChildrenMap.size > 0) {\n replaceInProperties(brick.properties, useChildrenMap);\n }\n}\nfunction replaceInProperties(value, useChildrenMap) {\n if (Array.isArray(value)) {\n for (const item of value) {\n replaceInProperties(item, useChildrenMap);\n }\n } else if (isObject(value)) {\n for (const [k, v] of Object.entries(value)) {\n if (k === \"useChildren\") {\n const children = useChildrenMap.get(v);\n if (children) {\n delete value[k];\n value.useBrick = children.length === 1 ? children[0] : children;\n }\n } else {\n replaceInProperties(v, useChildrenMap);\n }\n }\n }\n}\n//# sourceMappingURL=replaceUseChildren.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","cache","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","TRACK_NAMES","track","raw","trackText","variableName","expression","trackCtxExp","expressions","size","warn","JSON","stringify","trackAll","some","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","matchSource","source","traverseStoryboardFunction","silentErrors","precookFunction","typescript","cacheKey","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg","pull","USE_CHILDREN_SLOT_REGEXP","replaceUseChildren","input","brick","replaceInBrick","slots","useChildrenMap","Map","children","removeBricks","child","_child$slot","slot","test","get","set","slotConf","entries","bricks","replaceInProperties","properties","k","useBrick"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[4837,7218],{64837:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>c,ReactUseMultipleBricks:()=>u,asyncWrapBrick:()=>k,useCurrentApp:()=>l,useCurrentTheme:()=>o,useLazyWrapBrick:()=>w,useNavConfig:()=>h,useProvider:()=>v,useRecentApps:()=>i,useRouteRender:()=>d});var n=t(18769),s=t(
|
|
2
|
-
//# sourceMappingURL=7218.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_vs=globalThis.webpackChunk_next_bricks_vs||[]).push([[4837,7218],{64837:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>c,ReactUseMultipleBricks:()=>u,asyncWrapBrick:()=>k,useCurrentApp:()=>l,useCurrentTheme:()=>o,useLazyWrapBrick:()=>w,useNavConfig:()=>h,useProvider:()=>v,useRecentApps:()=>i,useRouteRender:()=>d});var n=t(18769),s=t(30348);let c=function(e){let{useBrick:r,data:t,errorBoundary:c,refCallback:u,ignoredCallback:a}=e;const[o,i]=(0,n.useState)(null),l=(0,n.useRef)(),[d,f]=(0,n.useState)(),p=(0,n.useRef)(0),g=(0,n.useMemo)((()=>{var e;return null===(e=s.__secret_internals.getRenderId)||void 0===e?void 0:e.call(s.__secret_internals)}),[]);(0,n.useEffect)((()=>{let e=!1;return async function(){try{const n=await s.__secret_internals.renderUseBrick(r,t,c);if(e)return;i(n),f(++p.current)}catch(n){!e&&function(e){var r;const t=null===(r=s.__secret_internals.getRenderId)||void 0===r?void 0:r.call(s.__secret_internals);return!e||!t||e===t}(g)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,s.handleHttpError)(n))}}(),()=>{e=!0}}),[t,r,g,c]);const y=(0,n.useCallback)((e=>{e?l.current=s.__secret_internals.mountUseBrick(o,e):(s.__secret_internals.unmountUseBrick(o,l.current),l.current=void 0),null==u||u(e)}),[u,o]);if(!o)return null;const{tagName:v}=o;if(null===v)return null==a||a(),null;const m=v;return n.createElement(m,{key:d,ref:y})},u=function(e){let{useBrick:r,data:t,errorBoundary:s}=e;return Array.isArray(r)?n.createElement(n.Fragment,null,r.map(((e,r)=>n.createElement(c,{key:r,useBrick:e,data:t,errorBoundary:s})))):n.createElement(c,{useBrick:r,data:t,errorBoundary:s})};const a=(0,s.getV2RuntimeFromDll)();if(a){const{SingleBrickAsComponentFactory:e,BrickAsComponentFactory:r}=a;e&&r&&(c=e(n),u=r(n))}function o(){const[e,r]=(0,n.useState)(s.getCurrentTheme);return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function i(){const[e,r]=n.useState((()=>(0,s.getRuntime)().getRecentApps()));return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function l(){return i().currentApp}function d(){const[e,r]=n.useState(null);return n.useEffect((()=>{const e=e=>{r(e.detail)};return window.addEventListener("route.render",e),()=>window.removeEventListener("route.render",e)}),[]),e}const f={provider:"",customOptions:{onError:()=>{},transform:(e,r)=>r,data:void 0,loading:!1,suspense:!1,cache:!0},dependencies:void 0},p=Object.entries(f).reduce(((e,r)=>{let[t,n]=r;return"[object Object]"===Object.prototype.toString.call(n)?{...e,...n}:{...e,[t]:n}}),{});var g=t(20563);const y=new Map;function v(){const{provider:e,customOptions:r,dependencies:t,requestInit:c}=function(e,r,t){const s=(0,n.useMemo)((()=>"string"==typeof e?e:f.provider),[e,r]),c=(0,n.useMemo)((()=>{let t={};return(0,g.isObject)(e)?t=e:(0,g.isObject)(r)&&(t=r),{...p,...t}}),[e,r]),u=(0,n.useMemo)((()=>{const e=[...Object.keys(f),...Object.keys(f.customOptions)],{args:r=null,...t}=Object.keys(c).reduce(((r,t)=>(e.includes(t)||(r[t]=c[t]),r)),{});return{options:{...t},args:r}}),[c]),a=(0,n.useMemo)((()=>Array.isArray(r)?r:Array.isArray(t)?t:p.dependencies),[r,t]),o=c.loading||Array.isArray(a);return{provider:s,customOptions:(0,n.useMemo)((()=>({...Object.keys(f.customOptions).reduce(((e,r)=>(e[r]=c[r],e)),{}),loading:o})),[c]),requestInit:u,dependencies:a}}(...arguments),{onError:u,transform:a,suspense:o,cache:i,...l}=r,[d,v]=(0,n.useState)(l.loading),m=(0,n.useRef)("pending"),k=(0,n.useRef)(),h=(0,n.useRef)(!1),w=(0,n.useRef)(),_=(0,n.useRef)(),b=(0,n.useRef)(l.data),B=(0,n.useReducer)((()=>({})),[])[1],E=(0,n.useCallback)((async(e,r)=>{try{w.current=void 0,o||v(!0);const t=await async function(e,r,t){let n;const c=function(e){const r=e=>Object.keys(e).sort().map((r=>({[r]:e[r]})));for(var t=arguments.length,n=new Array(t>1?t-1:0),s=1;s<t;s++)n[s-1]=arguments[s];try{const t="object"!=typeof(c=n)||null===c||Array.isArray(c)?n.map((e=>function(e){return"string"==typeof e}(e)?e:r(e))):r(n);return JSON.stringify({provider:e,args:t})}catch(r){return JSON.stringify({provider:e,args:n})}var c}(e,...t);return!r&&y.has(c)&&y.delete(c),y.has(c)?n=y.get(c):(n=(0,s.fetchByProvider)(e,t,{cache:r?"default":"reload"}),r&&y.set(c,n)),n}(e,i,r);_.current=t,b.current=a(b.current,t)}catch(e){w.current=e,b.current=void 0}return o||v(!1),w.current&&u(w.current),b.current}),[e,r,t,c,o,a,l.data,u,i]),O=(0,n.useCallback)((async(r,t)=>{let n=e,s=[];return(0,g.isString)(r)&&(n=r),(0,g.isObject)(r)?s=r:(0,g.isObject)(t)&&(s=t),o?(async()=>(k.current=E(n,s).then((e=>(m.current="success",e)),(e=>(m.current="error",e.current=e,e))),B(),await k.current))():E(n,s)}),[E]),R=(0,n.useMemo)((()=>Object.defineProperties({query:O},{loading:{get:()=>d},data:{get:()=>b.current},error:{get:()=>w.current}})),[O]);if((0,n.useEffect)((()=>(h.current=!0,Array.isArray(t)&&e&&R.query(e,c.args),()=>h.current=!1)),t),o&&k.current)switch(m.current){case"pending":throw k.current;case"error":throw w.current}return Object.assign([R,_.current,d,w.current],{request:R,...R,response:_.current,data:b.current,loading:d,error:w.current})}var m=t(30981);async function k(e,r){return await s.__secret_internals.loadBricks([e]),(0,m.wrapBrick)(e,r)}function h(){const[e,r]=(0,n.useState)((()=>(0,s.getRuntime)().getNavConfig()));return(0,n.useEffect)((()=>{const e=e=>{r(e.detail)};return window.addEventListener("navConfig.change",e),()=>window.removeEventListener("navConfig.change",e)}),[]),e}function w(e,r){return(0,n.useMemo)((()=>null!=e?(0,n.lazy)((async()=>({default:await k(e,r)}))):null),[e,r])}}}]);
|
|
2
|
+
//# sourceMappingURL=7218.d60ecf1c.js.map
|