ember-repl 3.0.0-beta.3 → 3.0.0-beta.4

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.
@@ -17,17 +17,35 @@ declare function compile(text: string, { format, onSuccess, onError, onCompileSt
17
17
  topLevelScope?: ScopeMap;
18
18
  }): Promise<void>;
19
19
  type Input = string | undefined | null;
20
+ type ExtraOptions = {
21
+ format: 'glimdown';
22
+ importMap?: EvalImportMap;
23
+ CopyComponent?: string;
24
+ ShadowComponent?: string;
25
+ topLevelScope?: ScopeMap;
26
+ } | {
27
+ format: 'hbs';
28
+ topLevelScope?: ScopeMap;
29
+ } | {
30
+ format: 'gjs';
31
+ importMap?: EvalImportMap;
32
+ };
20
33
  /**
21
- * By default, this compiles to `glimdown`. A Markdown format which
22
- * extracts `live` tagged code snippets and compiles them to components.
34
+ * @internal
23
35
  */
24
- declare const Compiled: ((markdownText: Input | (() => Input), format?: Format | (() => Format) | undefined) => {
36
+ interface Value {
25
37
  isReady: boolean;
26
38
  error: unknown;
27
39
  component: ComponentLike;
28
- }) | (() => {
29
- isReady: boolean;
30
- error: unknown;
31
- component: ComponentLike;
32
- });
33
- export { CACHE, compile, Compiled };
40
+ }
41
+ declare function buildCompiler(markdownText: Input | (() => Input)): Value;
42
+ declare function buildCompiler(markdownText: Input | (() => Input), options?: Format): Value;
43
+ declare function buildCompiler(markdownText: Input | (() => Input), options?: () => Format): Value;
44
+ declare function buildCompiler(markdownText: Input | (() => Input), options?: ExtraOptions): Value;
45
+ declare function buildCompiler(markdownText: Input | (() => Input), options?: () => ExtraOptions): Value;
46
+ /**
47
+ * By default, this compiles to `glimdown`. A Markdown format which
48
+ * extracts `live` tagged code snippets and compiles them to components.
49
+ */
50
+ declare const Compiled: typeof buildCompiler;
51
+ export { CACHE, compile, Value, buildCompiler, Compiled };
@@ -51,20 +51,23 @@ async function compile(text, {
51
51
  CACHE.set(id, result.component);
52
52
  await onSuccess(result.component);
53
53
  }
54
+
54
55
  /**
55
- * By default, this compiles to `glimdown`. A Markdown format which
56
- * extracts `live` tagged code snippets and compiles them to components.
56
+ * @internal
57
57
  */
58
- const Compiled = resourceFactory((markdownText, format) => {
58
+
59
+ function buildCompiler(markdownText, maybeOptions) {
59
60
  return resource(() => {
60
- let _format = (typeof format === 'function' ? format() : format) || 'glimdown';
61
+ let maybeObject = typeof maybeOptions === 'function' ? maybeOptions() : maybeOptions;
62
+ let format = (typeof maybeObject === 'string' ? maybeObject : maybeObject?.format) || 'glimdown';
63
+ let options = (typeof maybeObject === 'string' ? {} : maybeObject) || {};
61
64
  let input = typeof markdownText === 'function' ? markdownText() : markdownText;
62
65
  let ready = cell(false);
63
66
  let error = cell();
64
67
  let result = cell();
65
68
  if (input) {
66
69
  compile(input, {
67
- format: _format,
70
+ format,
68
71
  onSuccess: async component => {
69
72
  result.current = component;
70
73
  ready.set(true);
@@ -75,7 +78,8 @@ const Compiled = resourceFactory((markdownText, format) => {
75
78
  },
76
79
  onCompileStart: async () => {
77
80
  ready.set(false);
78
- }
81
+ },
82
+ ...options
79
83
  });
80
84
  }
81
85
  return () => ({
@@ -84,7 +88,13 @@ const Compiled = resourceFactory((markdownText, format) => {
84
88
  component: result.current
85
89
  });
86
90
  });
87
- });
91
+ }
92
+
93
+ /**
94
+ * By default, this compiles to `glimdown`. A Markdown format which
95
+ * extracts `live` tagged code snippets and compiles them to components.
96
+ */
97
+ const Compiled = resourceFactory(buildCompiler);
88
98
 
89
- export { CACHE, Compiled, compile };
99
+ export { CACHE, Compiled, buildCompiler, compile };
90
100
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/browser/compile/index.ts"],"sourcesContent":["import { cell, resource, resourceFactory } from 'ember-resources';\n\nimport { nameFor } from '../utils';\nimport {\n compileGJS as processGJS,\n compileHBS as processHBS,\n compileMD as processMD,\n} from './formats';\n\nimport type { CompileResult } from '../types';\nimport type { EvalImportMap, ScopeMap } from './types';\nimport type { ComponentLike } from '@glint/template';\ntype Format = 'glimdown' | 'gjs' | 'hbs';\n\nexport const CACHE = new Map<string, ComponentLike>();\n\nconst SUPPORTED_FORMATS = ['glimdown', 'gjs', 'hbs'];\n\n/**\n * This compileMD is a more robust version of the raw compiling used in \"formats\".\n * This function manages cache, and has events for folks building UIs to hook in to\n */\nexport async function compile(\n text: string,\n {\n format,\n onSuccess,\n onError,\n onCompileStart,\n ...options\n }: {\n format: Format;\n onSuccess: (component: ComponentLike) => Promise<unknown> | unknown;\n onError: (error: string) => Promise<unknown> | unknown;\n onCompileStart: () => Promise<unknown> | unknown;\n importMap?: EvalImportMap;\n CopyComponent?: string;\n ShadowComponent?: string;\n topLevelScope?: ScopeMap;\n }\n) {\n let id = nameFor(text);\n\n let existing = CACHE.get(id);\n\n if (existing) {\n onSuccess(existing);\n\n return;\n }\n\n if (!SUPPORTED_FORMATS.includes(format)) {\n await onError(`Unsupported format: ${format}. Supported formats: ${SUPPORTED_FORMATS}`);\n\n return;\n }\n\n await onCompileStart();\n\n if (!text) {\n await onError('No Input Document yet');\n\n return;\n }\n\n let result: CompileResult;\n\n if (format === 'glimdown') {\n result = await processMD(text, options);\n } else if (format === 'gjs') {\n result = await processGJS(text, options.importMap);\n } else if (format === 'hbs') {\n result = await processHBS(text, {\n scope: options.topLevelScope,\n });\n } else {\n await onError(`Unsupported format: ${format}. Supported formats: ${SUPPORTED_FORMATS}`);\n\n return;\n }\n\n if (result.error) {\n await onError(result.error.message || `${result.error}`);\n\n return;\n }\n\n CACHE.set(id, result.component as ComponentLike);\n\n await onSuccess(result.component as ComponentLike);\n}\n\ntype Input = string | undefined | null;\n\n/**\n * By default, this compiles to `glimdown`. A Markdown format which\n * extracts `live` tagged code snippets and compiles them to components.\n */\nexport const Compiled = resourceFactory(\n (markdownText: Input | (() => Input), format?: Format | (() => Format)) => {\n return resource(() => {\n let _format: Format = (typeof format === 'function' ? format() : format) || 'glimdown';\n let input = typeof markdownText === 'function' ? markdownText() : markdownText;\n let ready = cell(false);\n let error = cell();\n let result = cell<ComponentLike>();\n\n if (input) {\n compile(input, {\n format: _format,\n onSuccess: async (component) => {\n result.current = component;\n ready.set(true);\n error.set(null);\n },\n onError: async (e) => {\n error.set(e);\n },\n onCompileStart: async () => {\n ready.set(false);\n },\n });\n }\n\n return () => ({\n isReady: ready.current,\n error: error.current,\n component: result.current,\n });\n });\n }\n);\n"],"names":["CACHE","Map","SUPPORTED_FORMATS","compile","text","format","onSuccess","onError","onCompileStart","options","id","nameFor","existing","get","includes","result","processMD","processGJS","importMap","processHBS","scope","topLevelScope","error","message","set","component","Compiled","resourceFactory","markdownText","resource","_format","input","ready","cell","current","e","isReady"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/browser/compile/index.ts"],"sourcesContent":["import { cell, resource, resourceFactory } from 'ember-resources';\n\nimport { nameFor } from '../utils';\nimport {\n compileGJS as processGJS,\n compileHBS as processHBS,\n compileMD as processMD,\n} from './formats';\n\nimport type { CompileResult } from '../types';\nimport type { EvalImportMap, ScopeMap } from './types';\nimport type { ComponentLike } from '@glint/template';\ntype Format = 'glimdown' | 'gjs' | 'hbs';\n\nexport const CACHE = new Map<string, ComponentLike>();\n\nconst SUPPORTED_FORMATS = ['glimdown', 'gjs', 'hbs'];\n\n/**\n * This compileMD is a more robust version of the raw compiling used in \"formats\".\n * This function manages cache, and has events for folks building UIs to hook in to\n */\nexport async function compile(\n text: string,\n {\n format,\n onSuccess,\n onError,\n onCompileStart,\n ...options\n }: {\n format: Format;\n onSuccess: (component: ComponentLike) => Promise<unknown> | unknown;\n onError: (error: string) => Promise<unknown> | unknown;\n onCompileStart: () => Promise<unknown> | unknown;\n importMap?: EvalImportMap;\n CopyComponent?: string;\n ShadowComponent?: string;\n topLevelScope?: ScopeMap;\n }\n) {\n let id = nameFor(text);\n\n let existing = CACHE.get(id);\n\n if (existing) {\n onSuccess(existing);\n\n return;\n }\n\n if (!SUPPORTED_FORMATS.includes(format)) {\n await onError(`Unsupported format: ${format}. Supported formats: ${SUPPORTED_FORMATS}`);\n\n return;\n }\n\n await onCompileStart();\n\n if (!text) {\n await onError('No Input Document yet');\n\n return;\n }\n\n let result: CompileResult;\n\n if (format === 'glimdown') {\n result = await processMD(text, options);\n } else if (format === 'gjs') {\n result = await processGJS(text, options.importMap);\n } else if (format === 'hbs') {\n result = await processHBS(text, {\n scope: options.topLevelScope,\n });\n } else {\n await onError(`Unsupported format: ${format}. Supported formats: ${SUPPORTED_FORMATS}`);\n\n return;\n }\n\n if (result.error) {\n await onError(result.error.message || `${result.error}`);\n\n return;\n }\n\n CACHE.set(id, result.component as ComponentLike);\n\n await onSuccess(result.component as ComponentLike);\n}\n\ntype Input = string | undefined | null;\n\ntype ExtraOptions =\n | {\n format: 'glimdown';\n importMap?: EvalImportMap;\n CopyComponent?: string;\n ShadowComponent?: string;\n topLevelScope?: ScopeMap;\n }\n | {\n format: 'hbs';\n topLevelScope?: ScopeMap;\n }\n | {\n format: 'gjs';\n importMap?: EvalImportMap;\n };\n\n/**\n * @internal\n */\nexport interface Value {\n isReady: boolean;\n error: unknown;\n component: ComponentLike;\n}\n\nexport function buildCompiler(markdownText: Input | (() => Input)): Value;\nexport function buildCompiler(markdownText: Input | (() => Input), options?: Format): Value;\nexport function buildCompiler(markdownText: Input | (() => Input), options?: () => Format): Value;\nexport function buildCompiler(markdownText: Input | (() => Input), options?: ExtraOptions): Value;\nexport function buildCompiler(\n markdownText: Input | (() => Input),\n options?: () => ExtraOptions\n): Value;\n\nexport function buildCompiler(\n markdownText: Input | (() => Input),\n maybeOptions?: Format | (() => Format) | ExtraOptions | (() => ExtraOptions)\n): Value {\n return resource(() => {\n let maybeObject = typeof maybeOptions === 'function' ? maybeOptions() : maybeOptions;\n let format =\n (typeof maybeObject === 'string' ? maybeObject : maybeObject?.format) || 'glimdown';\n let options = (typeof maybeObject === 'string' ? {} : maybeObject) || {};\n\n let input = typeof markdownText === 'function' ? markdownText() : markdownText;\n let ready = cell(false);\n let error = cell();\n let result = cell<ComponentLike>();\n\n if (input) {\n compile(input, {\n format,\n onSuccess: async (component) => {\n result.current = component;\n ready.set(true);\n error.set(null);\n },\n onError: async (e) => {\n error.set(e);\n },\n onCompileStart: async () => {\n ready.set(false);\n },\n ...options,\n });\n }\n\n return () => ({\n isReady: ready.current,\n error: error.current,\n component: result.current,\n });\n });\n}\n\n/**\n * By default, this compiles to `glimdown`. A Markdown format which\n * extracts `live` tagged code snippets and compiles them to components.\n */\nexport const Compiled = resourceFactory(buildCompiler) as typeof buildCompiler;\n"],"names":["CACHE","Map","SUPPORTED_FORMATS","compile","text","format","onSuccess","onError","onCompileStart","options","id","nameFor","existing","get","includes","result","processMD","processGJS","importMap","processHBS","scope","topLevelScope","error","message","set","component","buildCompiler","markdownText","maybeOptions","resource","maybeObject","input","ready","cell","current","e","isReady","Compiled","resourceFactory"],"mappings":"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"}
@@ -170,6 +170,7 @@ function findLowerIndexInRangeArray(value, arr) {
170
170
  var lineColumn$1 = /*@__PURE__*/getDefaultExportFromCjs(lineColumn);
171
171
 
172
172
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
173
+ // @ts-ignore
173
174
  function getMatchStartAndEnd(match) {
174
175
  return {
175
176
  start: expect(match.index, 'Expected regular expression match to have an index'),
@@ -1 +1 @@
1
- {"version":3,"file":"preprocess.js","sources":["../../../../../../node_modules/.pnpm/isarray@1.0.0/node_modules/isarray/index.js","../../../../../../node_modules/.pnpm/isobject@2.1.0/node_modules/isobject/index.js","../../../../../../node_modules/.pnpm/line-column@1.0.2/node_modules/line-column/lib/line-column.js","../../../src/browser/eti/preprocess.ts"],"sourcesContent":["var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nvar isArray = require('isarray');\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && isArray(val) === false;\n};\n","/**\n * line-column - Convert efficiently index to/from line-column in a string\n * @module lineColumn\n * @license MIT\n */\n\"use strict\";\n\nvar isArray = require(\"isarray\");\nvar isObject = require(\"isobject\");\nvar slice = Array.prototype.slice;\n\nmodule.exports = LineColumnFinder;\n\n/**\n * Finder for index and line-column from given string.\n *\n * You can call this without `new` operator as it returns an instance anyway.\n *\n * @class\n * @param {string} str - A string to be parsed.\n * @param {Object|number} [options] - Options.\n * This can be an index in the string for shorthand of `lineColumn(str, index)`.\n * @param {number} [options.origin=1] - The origin value of line and column.\n */\nfunction LineColumnFinder(str, options) {\n if (!(this instanceof LineColumnFinder)) {\n if (typeof options === \"number\") {\n return (new LineColumnFinder(str)).fromIndex(options);\n }\n return new LineColumnFinder(str, options);\n }\n\n this.str = str || \"\";\n this.lineToIndex = buildLineToIndex(this.str);\n\n options = options || {};\n this.origin = typeof options.origin === \"undefined\" ? 1 : options.origin;\n}\n\n/**\n * Find line and column from index in the string.\n *\n * @param {number} index - Index in the string. (0-origin)\n * @return {Object|null}\n * Found line number and column number in object `{ line: X, col: Y }`.\n * If the given index is out of range, it returns `null`.\n */\nLineColumnFinder.prototype.fromIndex = function (index) {\n if (index < 0 || index >= this.str.length || isNaN(index)) {\n return null;\n }\n\n var line = findLowerIndexInRangeArray(index, this.lineToIndex);\n return {\n line: line + this.origin,\n col: index - this.lineToIndex[line] + this.origin\n };\n}\n\n/**\n * Find index from line and column in the string.\n *\n * @param {number|Object|Array} line - Line number in the string.\n * This can be an Object of `{ line: X, col: Y }`, or\n * an Array of `[line, col]`.\n * @param {number} [column] - Column number in the string.\n * This must be omitted or undefined when Object or Array is given\n * to the first argument.\n * @return {number}\n * Found index in the string. (always 0-origin)\n * If the given line or column is out of range, it returns `-1`.\n */\nLineColumnFinder.prototype.toIndex = function (line, column) {\n if (typeof column === \"undefined\") {\n if (isArray(line) && line.length >= 2) {\n return this.toIndex(line[0], line[1]);\n }\n if (isObject(line) && \"line\" in line && (\"col\" in line || \"column\" in line)) {\n return this.toIndex(line.line, (\"col\" in line ? line.col : line.column));\n }\n return -1;\n }\n if (isNaN(line) || isNaN(column)) {\n return -1;\n }\n\n line -= this.origin;\n column -= this.origin;\n\n if (line >= 0 && column >= 0 && line < this.lineToIndex.length) {\n var lineIndex = this.lineToIndex[line];\n var nextIndex = (\n line === this.lineToIndex.length - 1\n ? this.str.length\n : this.lineToIndex[line + 1]\n );\n\n if (column < nextIndex - lineIndex) {\n return lineIndex + column;\n }\n }\n return -1;\n}\n\n/**\n * Build an array of indexes of each line from a string.\n *\n * @private\n * @param str {string} An input string.\n * @return {number[]} Built array of indexes. The key is line number.\n */\nfunction buildLineToIndex(str) {\n var lines = str.split(\"\\n\"),\n lineToIndex = new Array(lines.length),\n index = 0;\n\n for (var i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = index;\n index += lines[i].length + /* \"\\n\".length */ 1;\n }\n return lineToIndex;\n}\n\n/**\n * Find a lower-bound index of a value in a sorted array of ranges.\n *\n * Assume `arr = [0, 5, 10, 15, 20]` and\n * this returns `1` for `value = 7` (5 <= value < 10),\n * and returns `3` for `value = 18` (15 <= value < 20).\n *\n * @private\n * @param arr {number[]} An array of values representing ranges.\n * @param value {number} A value to be searched.\n * @return {number} Found index. If not found `-1`.\n */\nfunction findLowerIndexInRangeArray(value, arr) {\n if (value >= arr[arr.length - 1]) {\n return arr.length - 1;\n }\n\n var min = 0, max = arr.length - 2, mid;\n while (min < max) {\n mid = min + ((max - min) >> 1);\n\n if (value < arr[mid]) {\n max = mid - 1;\n } else if (value >= arr[mid + 1]) {\n min = mid + 1;\n } else { // value >= arr[mid] && value < arr[mid + 1]\n min = mid;\n break;\n }\n }\n return min;\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { getTemplateLocals } from '@glimmer/syntax';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport lineColumn from 'line-column';\nimport MagicString from 'magic-string';\n\nimport { expect } from './debug';\nimport { parseTemplates } from './parse-templates';\n\nimport type { ParseTemplatesOptions, TemplateMatch } from './parse-templates';\n\ninterface PreprocessOptionsEager {\n importIdentifier?: string;\n importPath?: string;\n templateTag?: string;\n templateTagReplacement?: string;\n\n relativePath: string;\n includeSourceMaps: boolean;\n includeTemplateTokens: boolean;\n}\n\ninterface PreprocessOptionsLazy {\n importIdentifier?: string;\n importPath?: string;\n templateTag?: string;\n templateTagReplacement?: string;\n\n relativePath: string;\n includeSourceMaps: boolean;\n includeTemplateTokens: boolean;\n}\n\ntype PreprocessOptions = PreprocessOptionsLazy | PreprocessOptionsEager;\n\ninterface PreprocessedOutput {\n output: string;\n replacements: Replacement[];\n}\n\ninterface Replacement {\n type: 'start' | 'end';\n index: number;\n oldLength: number;\n newLength: number;\n originalLine: number;\n originalCol: number;\n}\n\nfunction getMatchStartAndEnd(match: RegExpMatchArray) {\n return {\n start: expect(match.index, 'Expected regular expression match to have an index'),\n end:\n expect(match.index, 'Expected regular expression match to have an index') + match[0].length,\n };\n}\n\nfunction replacementFrom(\n template: string,\n index: number,\n oldLength: number,\n newLength: number,\n type: 'start' | 'end'\n): Replacement {\n const loc = expect(\n lineColumn(template).fromIndex(index),\n 'BUG: expected to find a line/column based on index'\n );\n\n return {\n type,\n index,\n oldLength,\n newLength,\n originalCol: loc.col,\n originalLine: loc.line,\n };\n}\n\nfunction replaceMatch(\n s: MagicString,\n match: TemplateMatch,\n startReplacement: string,\n endReplacement: string,\n template: string,\n includeTemplateTokens: boolean\n): Replacement[] {\n const { start: openStart, end: openEnd } = getMatchStartAndEnd(match.start);\n const { start: closeStart, end: closeEnd } = getMatchStartAndEnd(match.end);\n\n let options = '';\n\n if (includeTemplateTokens) {\n const tokensString = getTemplateLocals(template.slice(openEnd, closeStart))\n .filter((local: string) => local.match(/^[$A-Z_][0-9A-Z_$]*$/i))\n .join(',');\n\n if (tokensString.length > 0) {\n options = `, scope: () => ({${tokensString}})`;\n }\n }\n\n const newStart = `${startReplacement}\\``;\n const newEnd = `\\`, { strictMode: true${options} }${endReplacement}`;\n\n s.overwrite(openStart, openEnd, newStart);\n s.overwrite(closeStart, closeEnd, newEnd);\n ensureBackticksEscaped(s, openEnd + 1, closeStart - 1);\n\n return [\n replacementFrom(template, openStart, openEnd - openStart, newStart.length, 'start'),\n replacementFrom(template, closeStart, closeEnd - closeStart, newEnd.length, 'end'),\n ];\n}\n\n/**\n * Preprocesses all embedded templates within a JavaScript or TypeScript file.\n * This function replaces all embedded templates that match our template syntax\n * with valid, parseable JS. Optionally, it can also include a source map, and\n * it can also include all possible values used within the template.\n *\n * Input:\n *\n * <template><MyComponent/><template>\n *\n * Output:\n *\n * [GLIMMER_TEMPLATE(`<MyComponent/>`, { scope() { return {MyComponent}; } })];\n *\n * It can also be used with template literals to provide the in scope values:\n *\n * Input:\n *\n * hbs`<MyComponent/>`;\n *\n * Output\n *\n * hbs(`<MyComponent/>`, { scope() { return {MyComponent}; } });\n */\nexport function preprocessEmbeddedTemplates(\n template: string,\n options: PreprocessOptions\n): PreprocessedOutput {\n const { templateTag, templateTagReplacement, includeTemplateTokens, relativePath } = options;\n\n const parseTemplatesOptions: ParseTemplatesOptions = {\n templateTag,\n };\n\n const matches = parseTemplates(template, relativePath, parseTemplatesOptions);\n const replacements: Replacement[] = [];\n const s = new MagicString(template);\n\n for (const match of matches) {\n if (match.type === 'template-tag') {\n replacements.push(\n ...replaceMatch(\n s,\n match,\n `[${templateTagReplacement}(`,\n ')]',\n template,\n includeTemplateTokens\n )\n );\n }\n }\n\n let output = s.toString();\n\n return {\n output,\n replacements,\n };\n}\n\nfunction ensureBackticksEscaped(s: MagicString, start: number, end: number) {\n if (start >= end) return;\n\n let content = s.slice(start, end);\n\n content = content.replace(/(?<!\\\\)`/g, '\\\\`');\n s.overwrite(start, end, content, false);\n}\n"],"names":["toString","module","Array","isArray","arr","call","require","isObject","val","LineColumnFinder","str","options","fromIndex","lineToIndex","buildLineToIndex","origin","prototype","index","length","isNaN","line","findLowerIndexInRangeArray","col","toIndex","column","lineIndex","nextIndex","lines","split","i","l","value","min","max","mid","getMatchStartAndEnd","match","start","expect","end","replacementFrom","template","oldLength","newLength","type","loc","lineColumn","originalCol","originalLine","replaceMatch","s","startReplacement","endReplacement","includeTemplateTokens","openStart","openEnd","closeStart","closeEnd","tokensString","getTemplateLocals","slice","filter","local","join","newStart","newEnd","overwrite","ensureBackticksEscaped","preprocessEmbeddedTemplates","templateTag","templateTagReplacement","relativePath","parseTemplatesOptions","matches","parseTemplates","replacements","MagicString","push","output","content","replace"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"preprocess.js","sources":["../../../../../../node_modules/.pnpm/isarray@1.0.0/node_modules/isarray/index.js","../../../../../../node_modules/.pnpm/isobject@2.1.0/node_modules/isobject/index.js","../../../../../../node_modules/.pnpm/line-column@1.0.2/node_modules/line-column/lib/line-column.js","../../../src/browser/eti/preprocess.ts"],"sourcesContent":["var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n'use strict';\n\nvar isArray = require('isarray');\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && isArray(val) === false;\n};\n","/**\n * line-column - Convert efficiently index to/from line-column in a string\n * @module lineColumn\n * @license MIT\n */\n\"use strict\";\n\nvar isArray = require(\"isarray\");\nvar isObject = require(\"isobject\");\nvar slice = Array.prototype.slice;\n\nmodule.exports = LineColumnFinder;\n\n/**\n * Finder for index and line-column from given string.\n *\n * You can call this without `new` operator as it returns an instance anyway.\n *\n * @class\n * @param {string} str - A string to be parsed.\n * @param {Object|number} [options] - Options.\n * This can be an index in the string for shorthand of `lineColumn(str, index)`.\n * @param {number} [options.origin=1] - The origin value of line and column.\n */\nfunction LineColumnFinder(str, options) {\n if (!(this instanceof LineColumnFinder)) {\n if (typeof options === \"number\") {\n return (new LineColumnFinder(str)).fromIndex(options);\n }\n return new LineColumnFinder(str, options);\n }\n\n this.str = str || \"\";\n this.lineToIndex = buildLineToIndex(this.str);\n\n options = options || {};\n this.origin = typeof options.origin === \"undefined\" ? 1 : options.origin;\n}\n\n/**\n * Find line and column from index in the string.\n *\n * @param {number} index - Index in the string. (0-origin)\n * @return {Object|null}\n * Found line number and column number in object `{ line: X, col: Y }`.\n * If the given index is out of range, it returns `null`.\n */\nLineColumnFinder.prototype.fromIndex = function (index) {\n if (index < 0 || index >= this.str.length || isNaN(index)) {\n return null;\n }\n\n var line = findLowerIndexInRangeArray(index, this.lineToIndex);\n return {\n line: line + this.origin,\n col: index - this.lineToIndex[line] + this.origin\n };\n}\n\n/**\n * Find index from line and column in the string.\n *\n * @param {number|Object|Array} line - Line number in the string.\n * This can be an Object of `{ line: X, col: Y }`, or\n * an Array of `[line, col]`.\n * @param {number} [column] - Column number in the string.\n * This must be omitted or undefined when Object or Array is given\n * to the first argument.\n * @return {number}\n * Found index in the string. (always 0-origin)\n * If the given line or column is out of range, it returns `-1`.\n */\nLineColumnFinder.prototype.toIndex = function (line, column) {\n if (typeof column === \"undefined\") {\n if (isArray(line) && line.length >= 2) {\n return this.toIndex(line[0], line[1]);\n }\n if (isObject(line) && \"line\" in line && (\"col\" in line || \"column\" in line)) {\n return this.toIndex(line.line, (\"col\" in line ? line.col : line.column));\n }\n return -1;\n }\n if (isNaN(line) || isNaN(column)) {\n return -1;\n }\n\n line -= this.origin;\n column -= this.origin;\n\n if (line >= 0 && column >= 0 && line < this.lineToIndex.length) {\n var lineIndex = this.lineToIndex[line];\n var nextIndex = (\n line === this.lineToIndex.length - 1\n ? this.str.length\n : this.lineToIndex[line + 1]\n );\n\n if (column < nextIndex - lineIndex) {\n return lineIndex + column;\n }\n }\n return -1;\n}\n\n/**\n * Build an array of indexes of each line from a string.\n *\n * @private\n * @param str {string} An input string.\n * @return {number[]} Built array of indexes. The key is line number.\n */\nfunction buildLineToIndex(str) {\n var lines = str.split(\"\\n\"),\n lineToIndex = new Array(lines.length),\n index = 0;\n\n for (var i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = index;\n index += lines[i].length + /* \"\\n\".length */ 1;\n }\n return lineToIndex;\n}\n\n/**\n * Find a lower-bound index of a value in a sorted array of ranges.\n *\n * Assume `arr = [0, 5, 10, 15, 20]` and\n * this returns `1` for `value = 7` (5 <= value < 10),\n * and returns `3` for `value = 18` (15 <= value < 20).\n *\n * @private\n * @param arr {number[]} An array of values representing ranges.\n * @param value {number} A value to be searched.\n * @return {number} Found index. If not found `-1`.\n */\nfunction findLowerIndexInRangeArray(value, arr) {\n if (value >= arr[arr.length - 1]) {\n return arr.length - 1;\n }\n\n var min = 0, max = arr.length - 2, mid;\n while (min < max) {\n mid = min + ((max - min) >> 1);\n\n if (value < arr[mid]) {\n max = mid - 1;\n } else if (value >= arr[mid + 1]) {\n min = mid + 1;\n } else { // value >= arr[mid] && value < arr[mid + 1]\n min = mid;\n break;\n }\n }\n return min;\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { getTemplateLocals } from '@glimmer/syntax';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport lineColumn from 'line-column';\nimport MagicString from 'magic-string';\n\nimport { expect } from './debug';\nimport { parseTemplates } from './parse-templates';\n\nimport type { ParseTemplatesOptions, TemplateMatch } from './parse-templates';\n\ninterface PreprocessOptionsEager {\n importIdentifier?: string;\n importPath?: string;\n templateTag?: string;\n templateTagReplacement?: string;\n\n relativePath: string;\n includeSourceMaps: boolean;\n includeTemplateTokens: boolean;\n}\n\ninterface PreprocessOptionsLazy {\n importIdentifier?: string;\n importPath?: string;\n templateTag?: string;\n templateTagReplacement?: string;\n\n relativePath: string;\n includeSourceMaps: boolean;\n includeTemplateTokens: boolean;\n}\n\ntype PreprocessOptions = PreprocessOptionsLazy | PreprocessOptionsEager;\n\ninterface PreprocessedOutput {\n output: string;\n replacements: Replacement[];\n}\n\ninterface Replacement {\n type: 'start' | 'end';\n index: number;\n oldLength: number;\n newLength: number;\n originalLine: number;\n originalCol: number;\n}\n\nfunction getMatchStartAndEnd(match: RegExpMatchArray) {\n return {\n start: expect(match.index, 'Expected regular expression match to have an index'),\n end:\n expect(match.index, 'Expected regular expression match to have an index') + match[0].length,\n };\n}\n\nfunction replacementFrom(\n template: string,\n index: number,\n oldLength: number,\n newLength: number,\n type: 'start' | 'end'\n): Replacement {\n const loc = expect(\n lineColumn(template).fromIndex(index),\n 'BUG: expected to find a line/column based on index'\n );\n\n return {\n type,\n index,\n oldLength,\n newLength,\n originalCol: loc.col,\n originalLine: loc.line,\n };\n}\n\nfunction replaceMatch(\n s: MagicString,\n match: TemplateMatch,\n startReplacement: string,\n endReplacement: string,\n template: string,\n includeTemplateTokens: boolean\n): Replacement[] {\n const { start: openStart, end: openEnd } = getMatchStartAndEnd(match.start);\n const { start: closeStart, end: closeEnd } = getMatchStartAndEnd(match.end);\n\n let options = '';\n\n if (includeTemplateTokens) {\n const tokensString = getTemplateLocals(template.slice(openEnd, closeStart))\n .filter((local: string) => local.match(/^[$A-Z_][0-9A-Z_$]*$/i))\n .join(',');\n\n if (tokensString.length > 0) {\n options = `, scope: () => ({${tokensString}})`;\n }\n }\n\n const newStart = `${startReplacement}\\``;\n const newEnd = `\\`, { strictMode: true${options} }${endReplacement}`;\n\n s.overwrite(openStart, openEnd, newStart);\n s.overwrite(closeStart, closeEnd, newEnd);\n ensureBackticksEscaped(s, openEnd + 1, closeStart - 1);\n\n return [\n replacementFrom(template, openStart, openEnd - openStart, newStart.length, 'start'),\n replacementFrom(template, closeStart, closeEnd - closeStart, newEnd.length, 'end'),\n ];\n}\n\n/**\n * Preprocesses all embedded templates within a JavaScript or TypeScript file.\n * This function replaces all embedded templates that match our template syntax\n * with valid, parseable JS. Optionally, it can also include a source map, and\n * it can also include all possible values used within the template.\n *\n * Input:\n *\n * <template><MyComponent/><template>\n *\n * Output:\n *\n * [GLIMMER_TEMPLATE(`<MyComponent/>`, { scope() { return {MyComponent}; } })];\n *\n * It can also be used with template literals to provide the in scope values:\n *\n * Input:\n *\n * hbs`<MyComponent/>`;\n *\n * Output\n *\n * hbs(`<MyComponent/>`, { scope() { return {MyComponent}; } });\n */\nexport function preprocessEmbeddedTemplates(\n template: string,\n options: PreprocessOptions\n): PreprocessedOutput {\n const { templateTag, templateTagReplacement, includeTemplateTokens, relativePath } = options;\n\n const parseTemplatesOptions: ParseTemplatesOptions = {\n templateTag,\n };\n\n const matches = parseTemplates(template, relativePath, parseTemplatesOptions);\n const replacements: Replacement[] = [];\n const s = new MagicString(template);\n\n for (const match of matches) {\n if (match.type === 'template-tag') {\n replacements.push(\n ...replaceMatch(\n s,\n match,\n `[${templateTagReplacement}(`,\n ')]',\n template,\n includeTemplateTokens\n )\n );\n }\n }\n\n let output = s.toString();\n\n return {\n output,\n replacements,\n };\n}\n\nfunction ensureBackticksEscaped(s: MagicString, start: number, end: number) {\n if (start >= end) return;\n\n let content = s.slice(start, end);\n\n content = content.replace(/(?<!\\\\)`/g, '\\\\`');\n s.overwrite(start, end, content, false);\n}\n"],"names":["toString","module","Array","isArray","arr","call","require","isObject","val","LineColumnFinder","str","options","fromIndex","lineToIndex","buildLineToIndex","origin","prototype","index","length","isNaN","line","findLowerIndexInRangeArray","col","toIndex","column","lineIndex","nextIndex","lines","split","i","l","value","min","max","mid","getMatchStartAndEnd","match","start","expect","end","replacementFrom","template","oldLength","newLength","type","loc","lineColumn","originalCol","originalLine","replaceMatch","s","startReplacement","endReplacement","includeTemplateTokens","openStart","openEnd","closeStart","closeEnd","tokensString","getTemplateLocals","slice","filter","local","join","newStart","newEnd","overwrite","ensureBackticksEscaped","preprocessEmbeddedTemplates","templateTag","templateTagReplacement","relativePath","parseTemplatesOptions","matches","parseTemplates","replacements","MagicString","push","output","content","replace"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -7,6 +7,9 @@ import { importSync } from '@embroider/macros';
7
7
  import { nameFor } from './utils.js';
8
8
 
9
9
  /* eslint-disable @typescript-eslint/no-explicit-any */
10
+ // import { precompileJSON } from '@glimmer/compiler';
11
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
12
+ // @ts-ignore
10
13
  // These things are pre-bundled in the old system.
11
14
  // ember-template-compiler defines them in AMD/requirejs
12
15
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"hbs.js","sources":["../../src/browser/hbs.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// import { precompileJSON } from '@glimmer/compiler';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { setComponentTemplate } from '@ember/component';\nimport templateOnlyComponent from '@ember/component/template-only';\nimport { array, concat, fn, get, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { createTemplateFactory } from '@ember/template-factory';\nimport { importSync } from '@embroider/macros';\n\nimport { nameFor } from './utils';\n\nimport type { CompileResult } from './types';\nimport type { ComponentLike } from '@glint/template';\n\n// These things are pre-bundled in the old system.\n// ember-template-compiler defines them in AMD/requirejs\nconst { precompileJSON } = importSync('@glimmer/compiler') as any;\nconst { getTemplateLocals } = importSync('@glimmer/syntax') as any;\n\n/**\n * compile a template with an empty scope\n * to use components, helpers, etc, you will need to compile with JS\n *\n * (templates alone do not have a way to import / define complex structures)\n */\nexport function compileHBS(template: string, options: CompileTemplateOptions = {}): CompileResult {\n let name = nameFor(template);\n let component: undefined | ComponentLike;\n let error: undefined | Error;\n\n try {\n component = setComponentTemplate(\n compileTemplate(template, { moduleName: options.moduleName || name, ...options }),\n templateOnlyComponent(options.moduleName || name)\n ) as ComponentLike;\n } catch (e) {\n error = e as Error | undefined;\n }\n\n return { name, component, error };\n}\n\ninterface CompileTemplateOptions {\n /**\n * Used for debug viewing\n */\n moduleName?: string;\n scope?: Record<string, unknown>;\n}\n\n/**\n * The reason why we can't use precompile directly is because of this:\n * https://github.com/glimmerjs/glimmer-vm/blob/master/packages/%40glimmer/compiler/lib/compiler.ts#L132\n *\n * Support for dynamically compiling templates in strict mode doesn't seem to be fully their yet.\n * That JSON.stringify (and the lines after) prevent us from easily setting the scope function,\n * which means that *everything* is undefined.\n */\nfunction compileTemplate(source: string, { moduleName, scope = {} }: CompileTemplateOptions) {\n let localScope = { array, concat, fn, get, hash, on, ...scope } as any;\n let locals = getTemplateLocals(source);\n\n let options = {\n strictMode: true,\n moduleName,\n locals,\n isProduction: false,\n meta: { moduleName },\n };\n\n // Copied from @glimmer/compiler/lib/compiler#precompile\n let [block, usedLocals] = precompileJSON(source, options);\n\n let usedScope = usedLocals.map((key: string) => localScope[key]);\n\n let blockJSON = JSON.stringify(block);\n let templateJSONObject = {\n id: moduleName,\n block: blockJSON,\n moduleName: moduleName ?? '(unknown template module)',\n scope: () => usedScope,\n isStrictMode: true,\n };\n\n let factory = createTemplateFactory(templateJSONObject);\n\n return factory;\n}\n"],"names":["precompileJSON","importSync","getTemplateLocals","compileHBS","template","options","name","nameFor","component","error","setComponentTemplate","compileTemplate","moduleName","templateOnlyComponent","e","source","scope","localScope","array","concat","fn","get","hash","on","locals","strictMode","isProduction","meta","block","usedLocals","usedScope","map","key","blockJSON","JSON","stringify","templateJSONObject","id","isStrictMode","factory","createTemplateFactory"],"mappings":";;;;;;;;AAAA;AAkBA;AACA;AACA,MAAM;AAAEA,EAAAA,cAAAA;AAAe,CAAC,GAAGC,UAAU,CAAC,mBAAmB,CAAQ,CAAA;AACjE,MAAM;AAAEC,EAAAA,iBAAAA;AAAkB,CAAC,GAAGD,UAAU,CAAC,iBAAiB,CAAQ,CAAA;;AAElE;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,UAAUA,CAACC,QAAgB,EAAEC,OAA+B,GAAG,EAAE,EAAiB;AAChG,EAAA,IAAIC,IAAI,GAAGC,OAAO,CAACH,QAAQ,CAAC,CAAA;AAC5B,EAAA,IAAII,SAAoC,CAAA;AACxC,EAAA,IAAIC,KAAwB,CAAA;EAE5B,IAAI;AACFD,IAAAA,SAAS,GAAGE,oBAAoB,CAC9BC,eAAe,CAACP,QAAQ,EAAE;AAAEQ,MAAAA,UAAU,EAAEP,OAAO,CAACO,UAAU,IAAIN,IAAI;MAAE,GAAGD,OAAAA;KAAS,CAAC,EACjFQ,GAAqB,CAACR,OAAO,CAACO,UAAU,IAAIN,IAAI,CAClD,CAAkB,CAAA;GACnB,CAAC,OAAOQ,CAAC,EAAE;AACVL,IAAAA,KAAK,GAAGK,CAAsB,CAAA;AAChC,GAAA;EAEA,OAAO;IAAER,IAAI;IAAEE,SAAS;AAAEC,IAAAA,KAAAA;GAAO,CAAA;AACnC,CAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,eAAeA,CAACI,MAAc,EAAE;EAAEH,UAAU;AAAEI,EAAAA,KAAK,GAAG,EAAC;AAA0B,CAAC,EAAE;AAC3F,EAAA,IAAIC,UAAU,GAAG;IAAEC,KAAK;IAAEC,MAAM;IAAEC,EAAE;IAAEC,GAAG;IAAEC,IAAI;IAAEC,EAAE;IAAE,GAAGP,KAAAA;GAAc,CAAA;AACtE,EAAA,IAAIQ,MAAM,GAAGtB,iBAAiB,CAACa,MAAM,CAAC,CAAA;AAEtC,EAAA,IAAIV,OAAO,GAAG;AACZoB,IAAAA,UAAU,EAAE,IAAI;IAChBb,UAAU;IACVY,MAAM;AACNE,IAAAA,YAAY,EAAE,KAAK;AACnBC,IAAAA,IAAI,EAAE;AAAEf,MAAAA,UAAAA;AAAW,KAAA;GACpB,CAAA;;AAED;EACA,IAAI,CAACgB,KAAK,EAAEC,UAAU,CAAC,GAAG7B,cAAc,CAACe,MAAM,EAAEV,OAAO,CAAC,CAAA;AAEzD,EAAA,IAAIyB,SAAS,GAAGD,UAAU,CAACE,GAAG,CAAEC,GAAW,IAAKf,UAAU,CAACe,GAAG,CAAC,CAAC,CAAA;AAEhE,EAAA,IAAIC,SAAS,GAAGC,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,CAAA;AACrC,EAAA,IAAIQ,kBAAkB,GAAG;AACvBC,IAAAA,EAAE,EAAEzB,UAAU;AACdgB,IAAAA,KAAK,EAAEK,SAAS;IAChBrB,UAAU,EAAEA,UAAU,IAAI,2BAA2B;IACrDI,KAAK,EAAEA,MAAMc,SAAS;AACtBQ,IAAAA,YAAY,EAAE,IAAA;GACf,CAAA;AAED,EAAA,IAAIC,OAAO,GAAGC,qBAAqB,CAACJ,kBAAkB,CAAC,CAAA;AAEvD,EAAA,OAAOG,OAAO,CAAA;AAChB;;;;"}
1
+ {"version":3,"file":"hbs.js","sources":["../../src/browser/hbs.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// import { precompileJSON } from '@glimmer/compiler';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { setComponentTemplate } from '@ember/component';\nimport templateOnlyComponent from '@ember/component/template-only';\nimport { array, concat, fn, get, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { createTemplateFactory } from '@ember/template-factory';\nimport { importSync } from '@embroider/macros';\n\nimport { nameFor } from './utils';\n\nimport type { CompileResult } from './types';\nimport type { ComponentLike } from '@glint/template';\n\n// These things are pre-bundled in the old system.\n// ember-template-compiler defines them in AMD/requirejs\nconst { precompileJSON } = importSync('@glimmer/compiler') as any;\nconst { getTemplateLocals } = importSync('@glimmer/syntax') as any;\n\n/**\n * compile a template with an empty scope\n * to use components, helpers, etc, you will need to compile with JS\n *\n * (templates alone do not have a way to import / define complex structures)\n */\nexport function compileHBS(template: string, options: CompileTemplateOptions = {}): CompileResult {\n let name = nameFor(template);\n let component: undefined | ComponentLike;\n let error: undefined | Error;\n\n try {\n component = setComponentTemplate(\n compileTemplate(template, { moduleName: options.moduleName || name, ...options }),\n templateOnlyComponent(options.moduleName || name)\n ) as ComponentLike;\n } catch (e) {\n error = e as Error | undefined;\n }\n\n return { name, component, error };\n}\n\ninterface CompileTemplateOptions {\n /**\n * Used for debug viewing\n */\n moduleName?: string;\n scope?: Record<string, unknown>;\n}\n\n/**\n * The reason why we can't use precompile directly is because of this:\n * https://github.com/glimmerjs/glimmer-vm/blob/master/packages/%40glimmer/compiler/lib/compiler.ts#L132\n *\n * Support for dynamically compiling templates in strict mode doesn't seem to be fully their yet.\n * That JSON.stringify (and the lines after) prevent us from easily setting the scope function,\n * which means that *everything* is undefined.\n */\nfunction compileTemplate(source: string, { moduleName, scope = {} }: CompileTemplateOptions) {\n let localScope = { array, concat, fn, get, hash, on, ...scope } as any;\n let locals = getTemplateLocals(source);\n\n let options = {\n strictMode: true,\n moduleName,\n locals,\n isProduction: false,\n meta: { moduleName },\n };\n\n // Copied from @glimmer/compiler/lib/compiler#precompile\n let [block, usedLocals] = precompileJSON(source, options);\n\n let usedScope = usedLocals.map((key: string) => localScope[key]);\n\n let blockJSON = JSON.stringify(block);\n let templateJSONObject = {\n id: moduleName,\n block: blockJSON,\n moduleName: moduleName ?? '(unknown template module)',\n scope: () => usedScope,\n isStrictMode: true,\n };\n\n let factory = createTemplateFactory(templateJSONObject);\n\n return factory;\n}\n"],"names":["precompileJSON","importSync","getTemplateLocals","compileHBS","template","options","name","nameFor","component","error","setComponentTemplate","compileTemplate","moduleName","templateOnlyComponent","e","source","scope","localScope","array","concat","fn","get","hash","on","locals","strictMode","isProduction","meta","block","usedLocals","usedScope","map","key","blockJSON","JSON","stringify","templateJSONObject","id","isStrictMode","factory","createTemplateFactory"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAeA;AACA;AACA,MAAM;AAAEA,EAAAA,cAAAA;AAAe,CAAC,GAAGC,UAAU,CAAC,mBAAmB,CAAQ,CAAA;AACjE,MAAM;AAAEC,EAAAA,iBAAAA;AAAkB,CAAC,GAAGD,UAAU,CAAC,iBAAiB,CAAQ,CAAA;;AAElE;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,UAAUA,CAACC,QAAgB,EAAEC,OAA+B,GAAG,EAAE,EAAiB;AAChG,EAAA,IAAIC,IAAI,GAAGC,OAAO,CAACH,QAAQ,CAAC,CAAA;AAC5B,EAAA,IAAII,SAAoC,CAAA;AACxC,EAAA,IAAIC,KAAwB,CAAA;EAE5B,IAAI;AACFD,IAAAA,SAAS,GAAGE,oBAAoB,CAC9BC,eAAe,CAACP,QAAQ,EAAE;AAAEQ,MAAAA,UAAU,EAAEP,OAAO,CAACO,UAAU,IAAIN,IAAI;MAAE,GAAGD,OAAAA;KAAS,CAAC,EACjFQ,GAAqB,CAACR,OAAO,CAACO,UAAU,IAAIN,IAAI,CAClD,CAAkB,CAAA;GACnB,CAAC,OAAOQ,CAAC,EAAE;AACVL,IAAAA,KAAK,GAAGK,CAAsB,CAAA;AAChC,GAAA;EAEA,OAAO;IAAER,IAAI;IAAEE,SAAS;AAAEC,IAAAA,KAAAA;GAAO,CAAA;AACnC,CAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,eAAeA,CAACI,MAAc,EAAE;EAAEH,UAAU;AAAEI,EAAAA,KAAK,GAAG,EAAC;AAA0B,CAAC,EAAE;AAC3F,EAAA,IAAIC,UAAU,GAAG;IAAEC,KAAK;IAAEC,MAAM;IAAEC,EAAE;IAAEC,GAAG;IAAEC,IAAI;IAAEC,EAAE;IAAE,GAAGP,KAAAA;GAAc,CAAA;AACtE,EAAA,IAAIQ,MAAM,GAAGtB,iBAAiB,CAACa,MAAM,CAAC,CAAA;AAEtC,EAAA,IAAIV,OAAO,GAAG;AACZoB,IAAAA,UAAU,EAAE,IAAI;IAChBb,UAAU;IACVY,MAAM;AACNE,IAAAA,YAAY,EAAE,KAAK;AACnBC,IAAAA,IAAI,EAAE;AAAEf,MAAAA,UAAAA;AAAW,KAAA;GACpB,CAAA;;AAED;EACA,IAAI,CAACgB,KAAK,EAAEC,UAAU,CAAC,GAAG7B,cAAc,CAACe,MAAM,EAAEV,OAAO,CAAC,CAAA;AAEzD,EAAA,IAAIyB,SAAS,GAAGD,UAAU,CAACE,GAAG,CAAEC,GAAW,IAAKf,UAAU,CAACe,GAAG,CAAC,CAAC,CAAA;AAEhE,EAAA,IAAIC,SAAS,GAAGC,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,CAAA;AACrC,EAAA,IAAIQ,kBAAkB,GAAG;AACvBC,IAAAA,EAAE,EAAEzB,UAAU;AACdgB,IAAAA,KAAK,EAAEK,SAAS;IAChBrB,UAAU,EAAEA,UAAU,IAAI,2BAA2B;IACrDI,KAAK,EAAEA,MAAMc,SAAS;AACtBQ,IAAAA,YAAY,EAAE,IAAA;GACf,CAAA;AAED,EAAA,IAAIC,OAAO,GAAGC,qBAAqB,CAACJ,kBAAkB,CAAC,CAAA;AAEvD,EAAA,OAAOG,OAAO,CAAA;AAChB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-repl",
3
- "version": "3.0.0-beta.3",
3
+ "version": "3.0.0-beta.4",
4
4
  "description": "Addon for enabling REPL and Playground creation with Ember/Glimmer",
5
5
  "keywords": [
6
6
  "ember-addon"
@@ -42,10 +42,10 @@
42
42
  "addon-main.cjs"
43
43
  ],
44
44
  "dependencies": {
45
- "@babel/helper-plugin-utils": "^7.21.5",
46
- "@babel/standalone": "^7.21.8",
45
+ "@babel/helper-plugin-utils": "^7.22.5",
46
+ "@babel/standalone": "^7.22.5",
47
47
  "@embroider/addon-shim": "1.8.5",
48
- "@embroider/macros": "1.11.0",
48
+ "@embroider/macros": "1.11.1",
49
49
  "babel-import-util": "^1.3.0",
50
50
  "babel-plugin-ember-template-compilation": "^2.0.3",
51
51
  "broccoli-file-creator": "^2.1.1",
@@ -63,12 +63,13 @@
63
63
  "unified": "^10.1.2",
64
64
  "unist-util-visit": "^4.1.2",
65
65
  "uuid": "^9.0.0",
66
- "vfile": "^5.3.7"
66
+ "vfile": "^6.0.0"
67
67
  },
68
68
  "devDependencies": {
69
- "@babel/core": "^7.21.8",
70
- "@babel/types": "^7.21.5",
71
- "@ember/test-helpers": "^2.9.3",
69
+ "@babel/core": "^7.22.5",
70
+ "@babel/preset-typescript": "^7.22.5",
71
+ "@babel/types": "^7.22.5",
72
+ "@ember/test-helpers": "^3.1.0",
72
73
  "@ember/test-waiters": "^3.0.2",
73
74
  "@embroider/addon-dev": "3.1.1",
74
75
  "@glimmer/compiler": "^0.84.3",
@@ -83,7 +84,7 @@
83
84
  "@glint/environment-ember-template-imports": "^1.0.2",
84
85
  "@glint/template": "^1.0.2",
85
86
  "@nullvoxpopuli/eslint-configs": "^3.1.3",
86
- "@rollup/plugin-commonjs": "^25.0.1",
87
+ "@rollup/plugin-commonjs": "^25.0.2",
87
88
  "@tsconfig/ember": "^2.0.0",
88
89
  "@types/babel__core": "^7.20.0",
89
90
  "@types/babel__standalone": "^7.1.4",
@@ -94,19 +95,19 @@
94
95
  "@types/uuid": "^9.0.1",
95
96
  "@typescript-eslint/eslint-plugin": "^5.59.11",
96
97
  "@typescript-eslint/parser": "^5.59.11",
97
- "concurrently": "^8.0.1",
98
+ "concurrently": "^8.2.0",
98
99
  "ember-resources": "^6.1.0",
99
100
  "ember-source": "^5.0.0",
100
101
  "ember-template-imports": "^3.4.2",
101
- "ember-template-lint": "^5.10.1",
102
- "eslint": "^8.42.0",
102
+ "ember-template-lint": "^5.10.3",
103
+ "eslint": "^8.43.0",
103
104
  "eslint-plugin-ember": "^11.8.0",
104
105
  "eslint-plugin-node": "^11.1.0",
105
106
  "eslint-plugin-prettier": "^4.2.1",
106
107
  "prettier": "^2.8.8",
107
108
  "prettier-plugin-ember-template-tag": "^0.3.2",
108
109
  "publint": "^0.1.12",
109
- "rollup": "~3.21.0",
110
+ "rollup": "~3.25.1",
110
111
  "rollup-plugin-copy": "^3.4.0",
111
112
  "rollup-plugin-glimmer-template-tag": "^0.4.1",
112
113
  "rollup-plugin-ts": "^3.2.0",
@@ -92,41 +92,84 @@ export async function compile(
92
92
 
93
93
  type Input = string | undefined | null;
94
94
 
95
+ type ExtraOptions =
96
+ | {
97
+ format: 'glimdown';
98
+ importMap?: EvalImportMap;
99
+ CopyComponent?: string;
100
+ ShadowComponent?: string;
101
+ topLevelScope?: ScopeMap;
102
+ }
103
+ | {
104
+ format: 'hbs';
105
+ topLevelScope?: ScopeMap;
106
+ }
107
+ | {
108
+ format: 'gjs';
109
+ importMap?: EvalImportMap;
110
+ };
111
+
95
112
  /**
96
- * By default, this compiles to `glimdown`. A Markdown format which
97
- * extracts `live` tagged code snippets and compiles them to components.
113
+ * @internal
98
114
  */
99
- export const Compiled = resourceFactory(
100
- (markdownText: Input | (() => Input), format?: Format | (() => Format)) => {
101
- return resource(() => {
102
- let _format: Format = (typeof format === 'function' ? format() : format) || 'glimdown';
103
- let input = typeof markdownText === 'function' ? markdownText() : markdownText;
104
- let ready = cell(false);
105
- let error = cell();
106
- let result = cell<ComponentLike>();
107
-
108
- if (input) {
109
- compile(input, {
110
- format: _format,
111
- onSuccess: async (component) => {
112
- result.current = component;
113
- ready.set(true);
114
- error.set(null);
115
- },
116
- onError: async (e) => {
117
- error.set(e);
118
- },
119
- onCompileStart: async () => {
120
- ready.set(false);
121
- },
122
- });
123
- }
124
-
125
- return () => ({
126
- isReady: ready.current,
127
- error: error.current,
128
- component: result.current,
115
+ export interface Value {
116
+ isReady: boolean;
117
+ error: unknown;
118
+ component: ComponentLike;
119
+ }
120
+
121
+ export function buildCompiler(markdownText: Input | (() => Input)): Value;
122
+ export function buildCompiler(markdownText: Input | (() => Input), options?: Format): Value;
123
+ export function buildCompiler(markdownText: Input | (() => Input), options?: () => Format): Value;
124
+ export function buildCompiler(markdownText: Input | (() => Input), options?: ExtraOptions): Value;
125
+ export function buildCompiler(
126
+ markdownText: Input | (() => Input),
127
+ options?: () => ExtraOptions
128
+ ): Value;
129
+
130
+ export function buildCompiler(
131
+ markdownText: Input | (() => Input),
132
+ maybeOptions?: Format | (() => Format) | ExtraOptions | (() => ExtraOptions)
133
+ ): Value {
134
+ return resource(() => {
135
+ let maybeObject = typeof maybeOptions === 'function' ? maybeOptions() : maybeOptions;
136
+ let format =
137
+ (typeof maybeObject === 'string' ? maybeObject : maybeObject?.format) || 'glimdown';
138
+ let options = (typeof maybeObject === 'string' ? {} : maybeObject) || {};
139
+
140
+ let input = typeof markdownText === 'function' ? markdownText() : markdownText;
141
+ let ready = cell(false);
142
+ let error = cell();
143
+ let result = cell<ComponentLike>();
144
+
145
+ if (input) {
146
+ compile(input, {
147
+ format,
148
+ onSuccess: async (component) => {
149
+ result.current = component;
150
+ ready.set(true);
151
+ error.set(null);
152
+ },
153
+ onError: async (e) => {
154
+ error.set(e);
155
+ },
156
+ onCompileStart: async () => {
157
+ ready.set(false);
158
+ },
159
+ ...options,
129
160
  });
161
+ }
162
+
163
+ return () => ({
164
+ isReady: ready.current,
165
+ error: error.current,
166
+ component: result.current,
130
167
  });
131
- }
132
- );
168
+ });
169
+ }
170
+
171
+ /**
172
+ * By default, this compiles to `glimdown`. A Markdown format which
173
+ * extracts `live` tagged code snippets and compiles them to components.
174
+ */
175
+ export const Compiled = resourceFactory(buildCompiler) as typeof buildCompiler;